所以我们要使用分析查看工具 分析查看工具 使用qcachegrind 要查看分析图表,需要安装 graphviz: brew install graphviz 安装qcachegrind brew install qcachegrind 在命令行里使用 qcachegrind 打开它,然后通过它打开要分析的文件。 也可以在命令后直接跟要分析的文 qcachegrind /var/tmp/xdebug/cachegrind.out.37947 使用webgrind 下载: https://github.com/jokkedk
gprof2dot 等工具解析转化为 dot,再由 dot 转化为图片输出,也可以直接用 callgrind_annotate 直接解析打印,但最方便的是使用图形工具解析,如 windows 上的 qcachegrind ; f. qcachegrind 安装略,以下是 qcachegrind 打开上述 callgrind.out.PID 文件的效果: 左边列出了调用parts、调用栈 cost 排序等,右边列出了所有调用者 根据耗时分布找到程序的性能瓶颈,针对性的优化,关于 qcachegrind 的详细说明,可查阅官网 http://kcachegrind.sourceforge.net/html/Home.html ;
代码调优 这里进行代码调优的时,需要利用qcachegrind来进行分析。 首先笔者先进行安装: sudo apt-get install qcachegrind 之后我们调用Valgrind来生成运行数据: valgrind --tool=callgrind -v main (需要分析的程序) 运行之后在目录下生成对应的分析数据,我们用qcachegrind 打开,这里用的代码是笔者之前实现的 SkipList。 qcachegrind callgrind.out.29235 接下来我们来分析对应的结果: ?
xdebug.profiler_output_dir=/tmp xdebug.profiler_enable=1 访问程序后 , 会在tmp目录生成cachegrind.out.xxxx的文件 , 把这个文件下载到我们windows系统上 下载个qcachegrind
它会生成cachegrind文件,并可用KCacheGrind或QCacheGrind可视化分析。配置Xdebug性能分析:安装Xdebug。 用KCacheGrind或QCacheGrind可视化分析。
分析结果 这里为了方便查看函数的相互调用关系,我是用了pyprof2calltree 然后使用Mac上的QCacheGrind来可视化分析结果: ? 将Python的profiling文件转换并直接调用QCacheGrind便可以方便的查看分析相关信息。 ?
report current working directory of a process,格式:pwdx pid 内存分析工具 valgrind valgrind辅助工具 qcachegrind
report current working directory of a process,格式:pwdx pid 内存分析工具 valgrind valgrind辅助工具 qcachegrind
性能类工具 7.1. valgrind和qcachegrind内存分析工具 开源的内存分析和性能分析工具。 qcachegrind是一个valgrind辅助工具,可视化方式查看valgrind性能分析结果。 7.2. perf性能分析工具 Linux自带的功能强大的性能分析工具,可结合火焰图。