2016-04-17 2 views
1
 8.014196 task-clock    # 0.004 CPUs utilized   
      204 context-switches   # 0.025 M/sec     
      32 cpu-migrations   # 0.004 M/sec     
      0 page-faults    # 0.000 K/sec     
    11,841,196 cycles     # 1.478 GHz      [46.17%] 
    9,982,788 stalled-cycles-frontend # 84.31% frontend cycles idle [80.26%] 
    8,122,708 stalled-cycles-backend # 68.60% backend cycles idle 
    5,462,302 instructions    # 0.46 insns per cycle   
             # 1.83 stalled cycles per insn 
    1,098,309 branches     # 137.045 M/sec     
     94,430 branch-misses    # 8.60% of all branches   [77.23%] 

quel est le sens de 1,478 GHz et [46,17%] dans l'annotation de cycles.quel est le sens de l'annotation des cycles perf stat

+0

hulk, vous pouvez exécuter à nouveau le programme avec l'ensemble de hw plus petit événements pour désactiver le multiplexage? 'perf stat -e task-clock, changements de contexte, cpu-migrations, erreurs de page, cycles, instructions, branches./your_test_program' – osgx

+0

@osgx' 62.152716 task-clock # 0.003 Processeurs utilisés [100.00%] 2.182 contexte -options # 0,035 m/s [100.00%] 5 cpu-migrations # 0,080 K/s [%] 100,00 2 page-défauts # 0,032 K/sec 110.938.674 cycles # 1,785 GHz 52245072 instructions # 0.47 insns par cycle 10,107,248 branches # 162,620 M/s ' – hulk

Répondre

1

C'est une chose que je déteste beaucoup sur perf, que la documentation et les pages de manuel sont obsolètes et la recherche de la signification de certaines valeurs est assez compliquée. Je ne les recherche une fois donc j'ajouter mes conclusions:

quel est le sens de 1,478 GHz

A ma connaissance, la valeur après # est-recalcul de la valeur du compteur natif (la valeur dans la première colonne) à la forme lisible par l'utilisateur. Cette valeur doit correspondre approximativement à la vitesse d'horloge de votre processeur:

grep MHz /proc/cpuinfo 

devrait donner une valeur similaire. Il est imprimé à partir de tools/perf/util/stat-shadow.c.

et [46,17%] dans l'annotation de cycles?

Cette valeur doit correspondre à la partie du temps, le compteur de matériel était actif. Perf permet de démarrer plus de compteurs matériels et de les multiplexer en cours d'exécution, ce qui facilite la tâche du programmeur.

Je n'ai pas trouvé l'endroit réel dans le code, mais il est décrit dans un récemment proposed patch comme (partie format csv):

+ - percentage of measurement time the counter was running 
+0

Merci beaucoup pour votre aide, @Jakuje. Et 1,478 GHz semble caculate à partir de (cycles * 1000)/task-clock. D'autre part, "Cette valeur devrait correspondre à peu près à la vitesse d'horloge de votre processeur", la valeur cat/proc/cpuinfo est de 2,2GHz, mais la valeur de perf stat out est seulement de 1,2G, lorsque l'utilisation du processeur est de 90%. – hulk

+1

hulk, la fréquence de la CPU peut changer. Parfois, il sera aussi changé dans/proc/cpuinfo, mais 'perf stat -e cycles, tâche-clock ./programme' est plus précis, s'il y a' [100%] 'annotation en ligne avec les cycles. – osgx

+0

@osgx ala Intel Turbo magie ou similaire dans d'autres processeurs. Merci de mentionner. – Jakuje