c - Profiling 网络软件/Profiling software with lot of system call waiting

标签 c linux networking profiling distributed

我正在开发一个复杂的网络软件,但我无法确定如何提高系统性能。

特别是在使用阻塞同步调用的软件的一部分。由于系统的这一部分正在进行繁重的计算,因此几乎不可能确定该组件的缓慢是由这些计算引起的还是由等待系统的其他部分引起的。

是否有任何轻量级分析器可以捕获此信息?我不能使用像 valgrind 这样的重型配置文件,因为这会完全扭曲结果(尽管 valgrind 是完美的,因为它捕获了所有必需的信息)。

我尝试使用 oProfile,但无法从中获得任何有意义的结果(也许如果某处有简明教程...)。

最佳答案

您需要的是在挂钟时间(不仅仅是像 gprof 这样的 CPU 时间)为您提供堆栈样本的东西,并按行(不只是按函数)报告包含样本的百分比行。

Zoom会做的, 但我只是do random-pausing .这是 why it works . 这是一个逐个打击example . 这是 another explanation .

关于c - Profiling 网络软件/Profiling software with lot of system call waiting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263933/

相关文章:

c - 程序集,1 个文件中的两个函数,出现错误 : junk `(%ebp)' after expression

c - 使用popen在C中使用两个可执行文件进行读写

linux - Linux AIO 是否支持 RAW 套接字?

c# - 关闭远程系统?

c++ - 如何为Wireshark转储IP数据包缓冲区/如何在C++中进行十六进制转储?

java - 为什么我无法 ping 通计算机?

c - 试图从 "the art of exploitation"理解示例 char_array2.c

c - 如何将通过函数传递的字符串分配给结构成员? C编程

c - 如何获取单击打开对话框的按钮的控件 ID?

c++ - 编译 proftpd 并在安装目录中包含库拷贝