zoukankan      html  css  js  c++  java
  • perf 简介

    Perf 简介

    1.Perf简介

    PerfLinux kernel自带的系统性能优化工具。虽然它的版本还只是0.0.2Perf已经显现出它强大的实力,足以与目前Linux流行的OProfile相媲美了。

    Perf的优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernelnew feature。而像OProfile, GProf等通常会慢一拍Perf的基本原理跟OProfile等类似,也是在CPUPMU registersGet/Set performance counters来获得诸如instructions executed, cache-missed suffered, branches mispredicted等信息。Linux kernel对这些registers进行了一系列抽象,所以你可以按进程,按CPU或者按counter group等不同类别来查看Sample信息。

    2.使用Perf

    $ perf record -f -- git gc

    $ perf report --sort comm,dso,symbol | head -10

    perf record相当于opcontrol --start, perf report相当于opreport.

    查看所有可用的counters'perf list’

    可以用以上counter的任意组合来跑测试程序。如,用以下命令来看跑hackbenchpage alloc/free的次数。

    perf stat -e kmem:mm_page_pcpu_drain -e kmem:mm_page_alloc ./hackbench 10

    Perf可以统计N次结果的数值波动情况:perf stat --repeat 5 -e kmem:mm_page_pcpu_drain -e kmem:mm_page_alloc ./hackbench 10

    perf record -f -e kmem:mm_page_alloc -c 1 ./git gc查看哪个function引起了page allocations

    titan:~/git> perf report

    titan:~/git> perf report --sort comm,dso,symbol

    同时,call-graph(函数调用图)也可以被记录下来,并且能告诉你每个函数所占用的百分比。

    titan:~/git> perf record -f -g -e kmem:mm_page_alloc -c 1 ./git gc

    titan:~/git> perf report -g

    用以下命令查看整个系统10秒内的page allocation次数:

    titan:~/git> perf stat -a -e kmem:mm_page_pcpu_drain -e kmem:mm_page_alloc sleep 10

    以下命令查看每隔1秒,系统page allocation的波动状况:

    titan:~/git> perf stat --repeat 10 -a kmem:mm_page_alloc sleep 1

    通过反汇编往往能找出是哪行代码生成的指令会引起问题。

    titan:~/git> perf annotate __GI___fork

    原文

    http://blog.csdn.net/bluebeach/article/details/5912062

    https://perf.wiki.kernel.org/index.php/Tutorial

    http://whatot.github.io/pub/linux_program/perf%E7%AE%80%E4%BB%8B/

  • 相关阅读:
    CF1343E-Weights Distributing (最短路)
    科大讯飞杯-日期小助手(补)
    网络15软工个人作业5——软件工程总结
    软工网络15个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析
    软工网络15结对编程练习
    软工网络15个人阅读作业2——提问题
    软件工程网络15个人阅读作业1(201521123052 蓝锦明)
    Java课程设计 购物车系统(个人博客) 201521123052 蓝锦明
    201521123052 《Java程序设计》 第14周学习总结
  • 原文地址:https://www.cnblogs.com/mydomain/p/3204416.html
Copyright © 2011-2022 走看看