程序分析简介
2013-12-31 15:28
225 查看
程序分析是以某种语言书写的程序为对象,对其内部的运作流程进行分析。程序分析的目的主要有三点:一是通过程序内部各个模块之间的调用关系,整体上把握程序的运行流程,从而更好地理解程序,从中汲取有价值的内容。二是以系统优化为目的,通过对程序中关键函数的跟踪或者运行时信息的统计,找到系统性能的瓶颈,从而采取进一步行动对程序进行优化。最后一点,程序分析也有可能用于系统测试和程序调试中。当系统跟踪起来比较复杂,而某个BUG又比较难找时,可以通过一些特殊的数据构造一个测试用例,然后将分析到的函数调用关系和运行时实际的函数调用关系进行对比,从而找出错误代码的位置。
在此介绍一些Linux下程序分析工具:
1、gprof
gprof是一个GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间,也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”--是程序源代码的一个复本,标记有程序中每行代码的执行次数。
2、Wireshark (linux和windows下都有)
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。 Wireshark本身也不会送出封包至网络上。
3、nmon
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。nmon
工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
在此介绍一些Linux下程序分析工具:
1、gprof
gprof是一个GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间,也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”--是程序源代码的一个复本,标记有程序中每行代码的执行次数。
2、Wireshark (linux和windows下都有)
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。 Wireshark本身也不会送出封包至网络上。
3、nmon
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。nmon
工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
相关文章推荐
- Java程序分析平台Jchord简介
- 浅谈数值计算程序开发中性能分析的重要性--valgrind工具使用简介及可恶的std::pow
- Linux C程序I/O模型简介与异步 I/O性能模型分析
- 电路通用分析程序PSPICE简介
- MARMOT简介――一个MPI程序检测分析工具
- Linux C程序I/O模型简介与异步 I/O性能模型分析
- Linux C程序I/O模型简介与异步 I/O性能模型分析
- 如何使用strace+pstack利器分析程序性能
- 编程之美——2.20 程序理解和时间分析
- linux下sort程序简介
- SQLite入门与分析(一)---简介
- 实验四递归下降语法分析程序设计
- 实时计算、流式处理系统简介与简单分析 .
- 使用ToolRunner运行Hadoop程序基本原理分析
- C/C++程序从编译到最终生成可执行文件的过程分析
- matlab安装软件 Matlab视频教程李大勇 MATLAB程序开发入门课程 MATLAB神经网络30个案例分析及源程序
- MFC入程序的分析
- Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
- 主动轮廓线模型Snake模型简介&openCV中cvSnakeImage()函数代码分析
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的