1、不支持多线程;
2、只能看到主程序的函数调用,动态加载库的函数调用无法捕捉。
我有一个程序,动态加载了若干个库,目前使用gprof可以看到主程序的函数调用情况,但无法获取各动态库中各函数调用的情况。
各位兄弟有什么好的办法吗?
23 个解决方案
#1
不至于这个问题难道所有混csdn的哥们吧,汗!
#2
兄弟,对于二进制的代码,除了汇编命令外,你不能看到原代码,没有原代码,你就看在一个个.so里面的函数名之间跳转,我觉得意义不是很大阿。
#3
我有源代码,我是想通过某个工具测试一些各个函数的CPU占用情况,当从眼睛来看代码已经不能够满足优化代码的需求了,不知道我说的是否明白。
#4
顶!
我目前还不知道有什么工具
一般都是在分析后,对一些可能是性能瓶颈的函数调用前后gettimeofday,统计时间
期待哪位有什么好办法
我目前还不知道有什么工具
一般都是在分析后,对一些可能是性能瓶颈的函数调用前后gettimeofday,统计时间
期待哪位有什么好办法
#5
gettimeofday这种方法让人沮丧,期待更好的办法吧。
#6
linux不太熟,可以用采样的方法看占用情况。
#7
期待兄弟们给出更好的解决办法,目前用gettimeofday方法搞得我想死的心都有
#8
期待兄弟们给出更好的解决办法,目前用gettimeofday方法搞得我想死的心都有
#9
解决不动,
接分
接分
#10
回去研究gprof一下先,我
#11
对在函数调用内部加入时间这种方法,我相信是最直接最有效的方式,但同时也是最浪费时间的方法,我现在正在这么做,不过试想在接近300个函数内部加入计时代码,是件多么让人沮丧的事情,更痛苦的是,这些代码里还有无数的return。
不过目前看来,似乎没有别的路可走了。
不过目前看来,似乎没有别的路可走了。
#12
你最后还是先分析一下
把你觉得有瓶颈的地方用gettimeofday
一个模块一个模块的解决
不要一开始就把所有函数都加上,信息太多,可能你都要晕了。
把你觉得有瓶颈的地方用gettimeofday
一个模块一个模块的解决
不要一开始就把所有函数都加上,信息太多,可能你都要晕了。
#13
没试试把库表态加载进去,然后再监控
#14
兄弟,你就不能封装一个专门测试时间的函数吗?或者是C++的类也可以阿
一个一个插入代码搞到什么时候?
一个一个插入代码搞到什么时候?
#15
mark
#16
顶顶
#17
静态编译,不要动态编译
#18
努力顶起来。
#19
why not up
#20
用top或ps aux
#21
我的办法是,先用静态库的方法改写、编译这个工程,然后进行跟踪,分析出各个函数的效率,进行修改,得到满意的结果以后,在用动态库的方法来封装这个工程,这样最终的目标和原来测试也就差不多了:)
#22
学习
#23
顶。
#1
不至于这个问题难道所有混csdn的哥们吧,汗!
#2
兄弟,对于二进制的代码,除了汇编命令外,你不能看到原代码,没有原代码,你就看在一个个.so里面的函数名之间跳转,我觉得意义不是很大阿。
#3
我有源代码,我是想通过某个工具测试一些各个函数的CPU占用情况,当从眼睛来看代码已经不能够满足优化代码的需求了,不知道我说的是否明白。
#4
顶!
我目前还不知道有什么工具
一般都是在分析后,对一些可能是性能瓶颈的函数调用前后gettimeofday,统计时间
期待哪位有什么好办法
我目前还不知道有什么工具
一般都是在分析后,对一些可能是性能瓶颈的函数调用前后gettimeofday,统计时间
期待哪位有什么好办法
#5
gettimeofday这种方法让人沮丧,期待更好的办法吧。
#6
linux不太熟,可以用采样的方法看占用情况。
#7
期待兄弟们给出更好的解决办法,目前用gettimeofday方法搞得我想死的心都有
#8
期待兄弟们给出更好的解决办法,目前用gettimeofday方法搞得我想死的心都有
#9
解决不动,
接分
接分
#10
回去研究gprof一下先,我
#11
对在函数调用内部加入时间这种方法,我相信是最直接最有效的方式,但同时也是最浪费时间的方法,我现在正在这么做,不过试想在接近300个函数内部加入计时代码,是件多么让人沮丧的事情,更痛苦的是,这些代码里还有无数的return。
不过目前看来,似乎没有别的路可走了。
不过目前看来,似乎没有别的路可走了。
#12
你最后还是先分析一下
把你觉得有瓶颈的地方用gettimeofday
一个模块一个模块的解决
不要一开始就把所有函数都加上,信息太多,可能你都要晕了。
把你觉得有瓶颈的地方用gettimeofday
一个模块一个模块的解决
不要一开始就把所有函数都加上,信息太多,可能你都要晕了。
#13
没试试把库表态加载进去,然后再监控
#14
兄弟,你就不能封装一个专门测试时间的函数吗?或者是C++的类也可以阿
一个一个插入代码搞到什么时候?
一个一个插入代码搞到什么时候?
#15
mark
#16
顶顶
#17
静态编译,不要动态编译
#18
努力顶起来。
#19
why not up
#20
用top或ps aux
#21
我的办法是,先用静态库的方法改写、编译这个工程,然后进行跟踪,分析出各个函数的效率,进行修改,得到满意的结果以后,在用动态库的方法来封装这个工程,这样最终的目标和原来测试也就差不多了:)
#22
学习
#23
顶。