Closed JJ closed 2 months ago
Si lo crees necesario se puede imprimir los resultados individuales, pero el análisis de los datos se complicará. Se puede hacer hacer así:
gustavo@pccito:~/escritorio/as/practicas/13$ perf stat -r 10 -- ls > /dev/null
Performance counter stats for 'ls' (10 runs):
0,72 msec task-clock # 0,663 CPUs utilized ( +- 10,42% )
0 context-switches # 0,000 /sec
0 cpu-migrations # 0,000 /sec
99 page-faults # 137,953 K/sec ( +- 0,46% )
2.639.052 cycles # 3,677 GHz ( +- 1,43% )
923.051 stalled-cycles-frontend # 34,98% frontend cycles idle ( +- 1,40% )
2.221.838 instructions # 0,84 insn per cycle
# 0,42 stalled cycles per insn ( +- 0,62% )
491.015 branches # 684,211 M/sec ( +- 0,58% )
48.519 branch-misses # 9,88% of all branches ( +- 1,20% )
0,001082 +- 0,000113 seconds time elapsed ( +- 10,44% )
gustavo@pccito:~/escritorio/as/practicas/13$ man perf-stat
gustavo@pccito:~/escritorio/as/practicas/13$ perf stat -r 10 --table -- ls > /dev/null
Performance counter stats for 'ls' (10 runs):
0,67 msec task-clock # 0,657 CPUs utilized ( +- 7,98% )
0 context-switches # 0,000 /sec
0 cpu-migrations # 0,000 /sec
99 page-faults # 148,433 K/sec ( +- 0,43% )
2.607.110 cycles # 3,909 GHz ( +- 0,48% )
913.535 stalled-cycles-frontend # 35,04% frontend cycles idle ( +- 0,61% )
2.206.354 instructions # 0,85 insn per cycle
# 0,41 stalled cycles per insn ( +- 0,16% )
487.764 branches # 731,314 M/sec ( +- 0,17% )
48.027 branch-misses # 9,85% of all branches ( +- 0,48% )
# Table of individual measurements:
0,0017538 (+0,0007380) #########
0,0011634 (+0,0001476) ###
0,0009054 (-0,0001103) ###
0,0009092 (-0,0001065) ###
0,0009002 (-0,0001156) ###
0,0009072 (-0,0001086) ###
0,0009074 (-0,0001083) ###
0,0009034 (-0,0001123) ###
0,0009018 (-0,0001139) ###
0,0009056 (-0,0001102) ###
# Final result:
0,0010157 +- 0,0000859 seconds time elapsed ( +- 8,46% )
Si lo crees necesario se puede imprimir los resultados individuales, pero el análisis de los datos se complicará. Se puede hacer hacer así:
Hay que hacer el análisis de datos que hay que hacer, claro. Y complicarlo lo que sea necesario.
gustavo@pccito:~/escritorio/as/practicas/13$ perf stat -r 10 -- ls > /dev/null Performance counter stats for 'ls' (10 runs): 0,72 msec task-clock # 0,663 CPUs utilized ( +- 10,42% ) 0 context-switches # 0,000 /sec 0 cpu-migrations # 0,000 /sec 99 page-faults # 137,953 K/sec ( +- 0,46% ) 2.639.052 cycles # 3,677 GHz ( +- 1,43% ) 923.051 stalled-cycles-frontend # 34,98% frontend cycles idle ( +- 1,40% ) 2.221.838 instructions # 0,84 insn per cycle # 0,42 stalled cycles per insn ( +- 0,62% ) 491.015 branches # 684,211 M/sec ( +- 0,58% ) 48.519 branch-misses # 9,88% of all branches ( +- 1,20% ) 0,001082 +- 0,000113 seconds time elapsed ( +- 10,44% )
El problema es que esto no me sirve. Necesito el tiempo y la energía para cada una de las ejecuciones, para poder calcular diferencias significativas.
gustavo@pccito:~/escritorio/as/practicas/13$ man perf-stat gustavo@pccito:~/escritorio/as/practicas/13$ perf stat -r 10 --table -- ls > /dev/null
Performance counter stats for 'ls' (10 runs):
0,67 msec task-clock # 0,657 CPUs utilized ( +- 7,98% ) 0 context-switches # 0,000 /sec 0 cpu-migrations # 0,000 /sec 99 page-faults # 148,433 K/sec ( +- 0,43% ) 2.607.110 cycles # 3,909 GHz ( +- 0,48% ) 913.535 stalled-cycles-frontend # 35,04% frontend cycles idle ( +- 0,61% ) 2.206.354 instructions # 0,85 insn per cycle # 0,41 stalled cycles per insn ( +- 0,16% ) 487.764 branches # 731,314 M/sec ( +- 0,17% ) 48.027 branch-misses # 9,85% of all branches ( +- 0,48% ) # Table of individual measurements: 0,0017538 (+0,0007380) ######### 0,0011634 (+0,0001476) ### 0,0009054 (-0,0001103) ### 0,0009092 (-0,0001065) ### 0,0009002 (-0,0001156) ### 0,0009072 (-0,0001086) ### 0,0009074 (-0,0001083) ### 0,0009034 (-0,0001123) ### 0,0009018 (-0,0001139) ### 0,0009056 (-0,0001102) ###
Ah, mira. Pero también haría falta la energía. Me da igual si se ejecuta de forma independiente o si la herramienta lo da individualmente. Esto da solo los segundos, parece; haría falta también la energía de los MSR.
tienes razón, habría que realizar ejecuciones independientes porque --table solo lista individualmente los tiempos y no el resto de eventos
hecho hace tiempo
If we want to compute statistical differences, we can't obtain measures for all runs at the same time
https://github.com/gstvrmrlpz/energy/blob/9e1f6f97ee1271fc14c44824bd10ace9d4d3498e/c%2B%2B/makefile#L55
This does not allow you to run parametric or non parametric tests for the difference between two different measures.