进程性能检测命令gprof和top

1 gprof

是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof不适合。

我们以编译运行hello.c为例

gprof Quick Start
    gprof是gnu binutils工具之一,默认情况下linux系统当中都带有这个工具。

  1. 使用 -pg 选项来编译hello.c,如果要得到带注释的源码清单,则需要增加 -g 选项。运行: gcc -pg -g -o hello hello.c
  2. 运行应用程序: ./hello  会在当前目录下产生gmon.out文件
  3. 使用gprof来分析gmon.out文件,需要把它和产生它的应用程序关联起来:
    1. gprof hello gmon.out -p 得到每个函数占用的执行时间
    2. gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。
    3. gprof hello gmon.out -A 得到一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。这需要在编译的时候增加 -g选项。
2 top

作为Linux下常用的性能分析工具,它类似于Windows的任务管理器,能够实时显示系统中各个进程的资源占用状况。
top - 02:10:17 up 10 days, 4:42, 1 user, load average: 0.06, 0.10, 0.09
Tasks: 41 total, 1 running, 40 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 99.8% id, 0.2% wa, 0.0% hi, 0.0% si
Mem: 25065556k total, 230728k used, 24834828k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID  USER PR NI VIRT RES SHR  S  %CPU  %MEM TIME+ COMMAND
各项参数指标详解:
每一行:
02:10:17 当前时间
up 系统运行时间
user 当前登陆用户数
load average 分别代表前1分钟、5分钟、15分钟系统负载平均值
每二行:
Tasks 进程总数
running  处运行状态的进程数
sleeping 处休眠状态的进程数
stop 停止的进程数
zombie 僵死的进程数
每三行:(以下皆指CPU占用百分比)
us 用户空间占用比
sy 内核空间占用比
ni 用户进程空间内改变过优先级的进程占用比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
最后一行:
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI 负值高优先,正值低优先
VIRT 进程使用的虚拟内存总量,等于swap+res
RES 进程使用的未被换出的物理内存大小,等于code+data
SHR 共享内存大小
S 进程状态(D为不可中断的睡眠状态、R为运行、S为睡眠、T为跟踪/停止、Z为僵尸进程)
%CPU cpu占用比
%MEM 内存占用比
TIME+ 运行的时间
COMMAND  执行的命令

查看系统负载的常用命令还有,如uptime、cat /proc/loadavg、tload等。

top命令使用过程中,可以通过快捷键启动一些交互的命令来完成其它参数的功能
<空格键>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。
1: cpus切换.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值