Linux下性能分析工具有哪些?

  • 回答 (7)
  • 关注 (0)
  • 查看 (227)

Linux下性能分析工具有哪些?

风研雨墨风研雨墨提问于
藕丝空间人称受程序员思维影响深刻的闷骚大叔。回答于

​​​1、top 

TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

命令格式:

top [-] [d] [p] [q] [c] [C] [S]    [n]

参数说明:

d:  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p:  通过指定监控进程ID来仅仅监控某个进程的状态。

q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S: 指定累计模式

s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i:  使top不显示任何闲置或者僵死进程。

c:  显示整个命令行而不只是显示命令名

2、Perf

Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。

它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。

常用于性能瓶颈的查找与热点代码的定位。

CPU周期(cpu-cycles)是默认的性能事件,所谓的CPU周期是指CPU所能识别的最小时间单元,通常为亿分之几秒,

是CPU执行最简单的指令时所需要的时间,例如读取寄存器中的内容,也叫做clock tick。

Perf是一个包含22种子工具的工具集,以下是最常用的5种:

perf-list

perf-stat

perf-top

perf-record

perf-report

3、Gprof

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

可以显示“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间;

可以显示“Call graph”,包括函数的调用关系,每个函数调用花费了多少时间;

可以显示“注释的源代码”--是程序源代码的一个复本,标记有程序中每行代码的执行次数。

参数说明:

-b 不再输出统计图表中每个字段的详细描述。

-p 只输出函数的调用图(Call graph的那部分信息)。

-q 只输出函数的时间消耗列表。

-e Name 不再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可以给定多个 -e 标志。一个 -e 标志只能指定一个函数。

-E Name 不再输出函数Name 及其子函数的调用图,此标志类似于 -e 标志,但它在总时间和百分比时间的计算中排除了由函数Name 及其子函数所用的时间。

-f Name 输出函数Name 及其子函数的调用图。可以指定多个 -f 标志。一个 -f 标志只能指定一个函数。

-F Name 输出函数Name 及其子函数的调用图,它类似于 -f 标志,但它在总时间和百分比时间计算中仅使用所打印的例程的时间。可以指定多个 -F 标志。一个 -F 标志只能指定一个函数。-F 标志覆盖 -E 标志。

-z 显示使用次数为零的例程(按照调用计数和累积时间计算)。

比比比卡丘if(workHard == true){ return pass;}else{ return bug;}回答于
uniqueone回答于
离岛爱编程,爱画画回答于
前端丶小枫回答于
绯红的花io专业生产bug回答于
独钓寒江雪_Ly站在巨人肩膀上的矮子回答于

扫码关注云+社区

领取腾讯云代金券