摘要: 原文链接可以将以图形形式查看应用程序的调用过程看作是一个学习经历。这样做可以帮助您理解应用程序的内部行为,并获得有关程序优化方面的信息。例如,通过对那些经常调用的函数进行优化,您就可以用最少的努力来获得最佳的性能。另外,调用跟踪还可以判断用户函数的最大调用深度,这可以用来对调用栈使用的内存进行有效限制(在嵌入式系统中,这是非常重要的一个考虑因素)。为了捕获并显示调用图,您需要 4 个元素:GNU 编译器工具链、Addr2line 工具、定制的中间代码和一个名为 Graphviz 的代码。Addr2line 工具可以识别函数、给定地址的源代码行数和可执行映像。定制的中间代码是一个非常简单的工具, 阅读全文
posted @ 2012-07-09 18:46 wangkangluo1 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 原文链接参考链接http://baobaoyangzhou.blog.163.com/blog/static/117831250201241232756488/http://wenku.baidu.com/view/5e5438186bd97f192279e964.html索引 gprof使用 使用注意 扩展阅读linux下常用的性能工具就是跟gcc一起的gprof。来个例子程序:#include <stdio.h>#include <stdlib.h> void f1() { int i; int *p; for (i = 0; i < 10; i++) { p 阅读全文
posted @ 2012-07-09 18:42 wangkangluo1 阅读(2911) 评论(0) 推荐(0) 编辑
摘要: 原文链接gprof这个常用的性能工具,用来性能调优很方便。但是!!有个致命的缺点,不能处理动态链接库(dlopen()加载的)。sigh…那遇到动态链接库怎么调优呢,用这个工具callgrind。同样是valgrind工具集中的一个,使用也是同样方便。gcc带上-g参数,然后用callgrind运行!同样取上一个程序:#include <stdio.h>#include <stdlib.h> void f1() { int i; int *p; for (i = 0; i < 10; i++) { p = malloc(sizeof(int)); *p = 10; 阅读全文
posted @ 2012-07-09 18:33 wangkangluo1 阅读(6486) 评论(0) 推荐(0) 编辑
摘要: 参考 GCC 函式追蹤功能 finstrument-functions __attribute__ +用 Graphviz 可视化函数调用 ibm用 Graphviz 可视化函数调用 gcc/g++使用-finstrument-functions來觀察code每個function的呼叫 http://www.logix.cz/michal/devel/CygProfiler/cyg-profile.c.xp http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Code-Gen-Options.html#Code-Gen-Options 官方参数说明... 阅读全文
posted @ 2012-07-09 18:27 wangkangluo1 阅读(6524) 评论(0) 推荐(0) 编辑