Puck2099
16/05/2006, 20:59
Hola,
He estado haciendo profiling de un proyecto para priorizar las optimizaciones allí donde sea más necesario y he obtenido unos resultados tal que así:
Cada muestra cuenta como 0.01 seconds.
% cumulativo sí mismo sí mismo total
tiemp seconds seconds llamadas s/llama s/llama nombre
46.11 396.45 396.45 mcount_internal
10.79 489.25 92.80 567138795 0.00 0.00 ReadMem
5.52 536.72 47.47 264672 0.00 0.00 RefreshLineColorHorz
4.63 576.54 39.82 11693760 0.00 0.00 nec_execute
4.23 612.95 36.41 32019055 0.00 0.00 i_83pre
3.31 641.37 28.42 75111906 0.00 0.00 WriteIRam
2.43 662.25 20.88 32932774 0.00 0.00 EA_006
1.83 678.01 15.76 75128182 0.00 0.00 WriteMem
1.09 687.42 9.41 15038860 0.00 0.00 WsGetTileRow
1.07 696.58 9.16 24611517 0.00 0.00 i_jc
1.02 705.35 8.77 11693760 0.00 0.00 Interrupt
0.80 712.24 6.89 4614768 0.00 0.00 i_80pre
0.77 718.82 6.58 2178868 0.00 0.00 WriteIO
0.72 725.04 6.22 1499804 0.00 0.00 i_pushf
0.65 730.65 5.61 24362 0.00 0.02 WsRun
...
...
0.00 859.79 0.00 1 0.00 0.00 set_display_clock_div
Como veis, hay una función llamada mcount_internal que se "chupa" el 46% del tiempo de CPU.
El caso es que en mi código no tengo ninguna llamada explícita a dicha función, aunque sí alguna referencia en el binario (comprobado con el grep), por lo que supongo que vendrá de alguna librería estandard (en mi código solo enlazo con -lpthread y -lm).
¿Alguna idea de qué función es ésta? Buscando en el Google parece que tuviera algo que ver con la glibc, pero tampoco aclaro mucho...
Muchas gracias por la ayuda :brindis:
He estado haciendo profiling de un proyecto para priorizar las optimizaciones allí donde sea más necesario y he obtenido unos resultados tal que así:
Cada muestra cuenta como 0.01 seconds.
% cumulativo sí mismo sí mismo total
tiemp seconds seconds llamadas s/llama s/llama nombre
46.11 396.45 396.45 mcount_internal
10.79 489.25 92.80 567138795 0.00 0.00 ReadMem
5.52 536.72 47.47 264672 0.00 0.00 RefreshLineColorHorz
4.63 576.54 39.82 11693760 0.00 0.00 nec_execute
4.23 612.95 36.41 32019055 0.00 0.00 i_83pre
3.31 641.37 28.42 75111906 0.00 0.00 WriteIRam
2.43 662.25 20.88 32932774 0.00 0.00 EA_006
1.83 678.01 15.76 75128182 0.00 0.00 WriteMem
1.09 687.42 9.41 15038860 0.00 0.00 WsGetTileRow
1.07 696.58 9.16 24611517 0.00 0.00 i_jc
1.02 705.35 8.77 11693760 0.00 0.00 Interrupt
0.80 712.24 6.89 4614768 0.00 0.00 i_80pre
0.77 718.82 6.58 2178868 0.00 0.00 WriteIO
0.72 725.04 6.22 1499804 0.00 0.00 i_pushf
0.65 730.65 5.61 24362 0.00 0.02 WsRun
...
...
0.00 859.79 0.00 1 0.00 0.00 set_display_clock_div
Como veis, hay una función llamada mcount_internal que se "chupa" el 46% del tiempo de CPU.
El caso es que en mi código no tengo ninguna llamada explícita a dicha función, aunque sí alguna referencia en el binario (comprobado con el grep), por lo que supongo que vendrá de alguna librería estandard (en mi código solo enlazo con -lpthread y -lm).
¿Alguna idea de qué función es ésta? Buscando en el Google parece que tuviera algo que ver con la glibc, pero tampoco aclaro mucho...
Muchas gracias por la ayuda :brindis: