ano*_*non 46 c++ multithreading gprof
我曾经用gprof做我所有的Linux分析.
但是,对于我的多线程应用程序,它的输出似乎不一致.
现在,我挖了这个:
http://sam.zoy.org/writings/programming/gprof.html
但是,从很久以前开始,在我的gprof输出中,看来我的gprof列出了非主线程使用的函数.
所以,我的问题是:
1)2010年,我可以轻松使用gprof来分析多线程Linux C++应用程序吗?(Ubuntu 9.10)2)我应该研究哪些其他工具进行性能分析?
保罗R说,看看Zoom.你也可以使用lsstack,这是一种低技术方法,但与gprof相比,效果惊人.
补充:既然你澄清了你在33ms运行OpenGL,我之前的建议就是.此外,我个人在这种情况下所做的事情既有效又不直观.只需让它与典型或有问题的工作负载一起运行,然后手动停止它,并查看它正在做什么以及为什么.这样做几次.现在,如果只是偶尔行为不端,你只想在它行为不端的时候停止它.这并不容易,但我已经使用闹钟中断设置来实现正确的延迟.例如,如果100帧中的一帧超过33毫秒,则在帧开始时将计时器设置为35毫秒,在帧结束时将其关闭.这样,它只会在代码耗时太长时才会中断,它会显示原因.当然,一个样本可能会错过有罪的代码,但是20个样本不会错过它.
尝试现代 linux 分析工具perf
(perf_events):https : //perf.wiki.kernel.org/index.php/Tutorial和http://www.brendangregg.com/perf.html:
perf record ./application
# generates profile file perf.data
perf report
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46010 次 |
最近记录: |