易截截图软件、单文件、免安装、纯绿色、仅160KB

使用Gnu gprof进行Linux平台下的程序分析

O.S 使用Gnu gprof进行Linux平台下的程序分析
关 键 词:gprof callgraph 函数消耗的时间 Linux应用分析
阅读提示:本文介绍了如何使用Gnu gprof 对Linux平台下的现有程序进行优化分析和生成程序调用图。主要偏重于对生成和使用流程图作介绍。
Gprof 简介:
    Gprof功能:打印出程序运行中各个函数消耗的时间,可以帮助程序员找出众多函数中耗时最多的函数。产生程序运行时候的函数调用关系,包括调用次数,可以帮助程序员分析程序的运行流程。
    有了函数的调用关系,这会让开发人员大大提高工作效率,不用费心地去一点点找出程序的运行流程,这对小程序来说可能效果不是很明显,但对于有几万,几十万代 码量的工程来说,效率是毋庸置疑的!而且这个功能对于维护旧代码或者是分析Open Source来说那是相当诱人的,有了调用图,对程序的运行框架也就有了一个大体了解,知道了程序的“骨架“,分析它也就不会再那么茫然,尤其是对自己不 熟悉的代码和Open Source。费话不多说了,让我们开始我们的分析之旅吧!
Gprof 实现原理:
    通过在编译和 链接你的程序的时候(使用 -pg 编译和链接选项),gcc 在你应用程序的每个函数中都加入了一个名为mcount ( or “_mcount” , or “__mcount” , 依赖于编译器或操作系统)的函数,也就是说你的应用程序里的每一个函数都会调用mcount, 而mcount 会在内存中保存一张函数调用图,并通过函数调用堆栈的形式查找子函数和父函数的地址。这张调用图也保存了所有与函数相关的调用时间,调用次数等等的所有信 息。
Gprof基本用法:
1. 使用 -pg 编译和链接你的应用程序。
2. 执行你的应用程序使之生成供gprof 分析的数据。
3. 使用gprof 程序分析你的应用程序生成的数据。
4.  gprof产生的信息解释如下:
5.常用的Gprof 命令选项解释
-b不再输出统计图表中每个字段的详细描述。
-p 只输出函数的调用图(Call graph 的那部分信息)。
-q 只输出函数的时间消耗列表。
-E Name不再输出函数Name 及其子函数的调用图,此标志类似于 -e 标志,但它在总时间和百分比时间的计算中排除了由函数Name 及其子函数所用的时间。
-e Name 不再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可以给定多个 -e 标志。一个 -e 标志只能指定一个函数。
-F Name 输出函数Name 及其子函数的调用图,它类似


相关文档:

修改SUSE Linux系统的超级用户密码

1 、重新启动机器,在出现grub引导界面后,按F2,在启动linux 的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使得OS在运行login程序之前运行bash,出现命令行。
  2 、稍等片刻出现(none)# :命令行。
  3 、输入mount -n / -o remount ,rw
  4 、输入 mount–n /usr
  5 、输入 cd /usr ......

Linux下安全修复系统的Root密码

如果因为忘了root口令导致无法登录系统,请试用下面的方法来改忘记的root口令:
  方法一:
  1、重新启动系统。待系统启动到grub或lilo(现在一般是grub)引导菜单时,找到系统当前引导项(可以按方向键展开隐藏的菜单);
  2、把光标定位在该选项上按下字母“e”键进入这个引导的编辑状态;
  3、该选项 ......

Linux下 Oracle自动备份脚本及其运行设置

脚本文件 backup.sh
#!/bin/sh
a=`date "+%y_%m%d_%H%M"`
echo $a
/home/oracle/10g/bin/exp username@password@//192.168.0.126/SID owner=username FILE=/opt/beifen/126_username_$a.dmp
备份的文件格式如:126_username_09_0920_2300.dmp
编写完shell脚本之后,要对其赋予可执行权限及其用户所属:
# chmod 7 ......

Linux signal函数解析

    以下在centos5.3上实验。在linux中signal函数是通过调用sigaction来实现的,由此它不存在信号丢失以及每次信号处理后会把信号处理改成默认处理方式。但对于系统调用函数被信号打断时,系统调用是否会自动启动好像没怎么说明。不过可以自己动手看一下:
    signal(SIGTERM, term_handle ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号