我的程序开发分析环境

Posted by LuckXiang on June 23, 2016

编程路漫漫,学习一门开发工具所需要耗费的精力和时间不容小觑。所以我选择开发工具的基本要求有三点,好用,好看,跨平台。这样可以把更多的精力用在其他事情上,Vim编写代码和阅读代码细节,Understand静态分析代码结构、代码审查,beyond compare做代码对比,gprof在linux环境下做运行时分析。这四者的组合完美胜任日常开发工作。这些工具的安装使用在我的博客Book一栏软件使用记录都有介绍。

Vim

vim是非常优秀的编辑器,哪里都可以用,拥有自己的一套配置之后,用起来简直得心应手。而且它作为一个编辑器而非IDE,少了很多乱七八糟的东西,可以让我专注在编程本身,至于编译,部署等事情,脚本的优雅程度远远超过IDE,专注与做一件事情,才能获取到精神上的满足。

Understand

vim虽然通过配置插件也能满足日常的源码阅读需要,但是还是具有一些局限性。在分析大型代码和自己不熟悉的开源代码的时候,效率显得并不够高。Understand就是这样一个可以弥补短板的代码审查工具,他的图形能力很强,界面也比si漂亮,可以分析生成各种各样的分析图,如声明关系图、继承关系图、控制流图、依赖关系图、UML类图、树形关系图、自定义图表等,跨语言跨平台让他更加讨人喜欢,但是不知道为什么它在国内知名度不怎么高。用这个工具可以快速搞清楚代码的组织结构,弄清楚前后依赖,效率提升十倍不止。

Beyond Compare

这个工具可以对比目录文件图片等东西,对比工具中最好用的就是他了。

Gprof

gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。由于我主要在linux下工作,有时候难免需要分析一下程序性能,而且对于开源的程序,拿来跑一下,通过gprof可以马上看清楚调用的过程,十分方便。这个工具单独使用不是很方便。通过两个python脚本,gprof2dot.py和xdot.py,可以直接把结果变成调用关系图。唯一的遗憾就是mac似乎不支持gprof了。