|
|
1
6
很高兴你这么问。我相信OProfile可以做我认为正确的事情,那就是在壁炉钟上取堆栈样本。 当程序运行缓慢时 而且,如果它不允许您检查单个堆栈样本,则至少对样本上显示的每行代码进行汇总,即该行显示的样本百分比。那是一个 直接的 如果那条线不在的话能省下多少钱。 Here's one discussion. Here's another, 和 another . 正如保罗所说,Zoom应该这么做。 如果时间从60秒变为1秒,这意味着每一个堆栈样本都有59/60的概率向您显示问题。 |
|
|
3
2
我很久以前写过这个,只是因为找不到更好的: https://github.com/dicej/profile 我也找到了这个,虽然我没试过: https://github.com/oliver/ptrace-sampler |
|
|
4
1
很快入侵了linux的琐碎采样探查器: http://vi-server.org/vi/simple_sampling_profiler.html
它附加了
|
|
|
5
1
在尝试了这里的所有建议之后(除了现在已经失效的Zoom,它仍然是dropbox中的一个大文件),我发现没有什么能像Dunlavey先生建议的那样。上面列出的一些答案中的“快速黑客”不适合我,或者也不适合我。整天都在尝试。。。在一个简单的测试程序中,没有任何东西可以将fseek作为热点,而这个测试程序是I/O绑定的。
https://github.com/jasonrohrer/wallClockProfiler 它自动化了Dunlavey先生建议的手动过程,周期性地用GDB中断目标进程并获取堆栈跟踪,然后在最后打印一份关于哪些堆栈跟踪最常见的报告。这些是你真正的挂钟热点。而且它确实有效。 |