1
2
strace 将跟踪系统调用。这可能会指示网络套接字上阻塞的内容等。 |
2
2
This technique 应该找到它。 基本上,虽然它花费了这样的时间,但在堆栈上几乎总是有一个函数调用的层次结构,等待它们的工作完成。 只需对堆栈进行几次采样,就可以看到它们。 补充:正如Don Wakefield指出的那样, 堆栈 实用性很适合这项工作。 |
3
1
可以获得正在运行的程序的堆栈跟踪。在命令行中,使用“ps aux”查找程序的PID。假设是12345。然后运行:
当程序暂停时(或者在做任何可疑的事情时),在gdb中执行ctrl-c。gdb中的“bt”命令打印堆栈,现在可以对其进行欣赏,也可以将其粘贴到文本文件中以备以后研究。用“c”恢复程序的执行(继续)。 与使用oprofile或其他profiler相比,此手动技术的主要优点是,我可以在感兴趣的时刻获得准确的调用序列。在出现故障时,一些样本,以及程序正常运行时,应该提供有用的线索。 |
KWMuller · 如何在Netbeans中访问调用计数? 7 年前 |
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 7 年前 |
Bram · 如何启动和停止性能采样 7 年前 |
GoodGoodMan · 如何测量C代码中方法的cpu和内存使用率 7 年前 |
JumpingJezza · 读取2D矩阵的最快方法 7 年前 |
Mayank · 作为后台服务运行的行分析python代码 7 年前 |