该应用程序不计算内容,但可以进行I / O,读取文件,使用网络。我希望探查器显示它。
我期望像callgrind这样的东西,每个问题都调用clock_gettime。
或者像oprofile那样,它会中断我的应用程序(在睡眠或等待套接字/文件/任何内容时)以查看它在做什么。
我希望“读取”,“连接”,“nanosleep”,“发送”,尤其是“fsync”(及其所有调用方)这样的字体加粗(不要像字符串或数字函数那样执行计算)。
平台:GNU / Linux @ i386
最佳答案
快速破解用于Linux的简单采样探查器:http://vi-server.org/vi/simple_sampling_profiler.html
它将backtrace(3)
附加到SIGUSR1
上的文件中,然后将其转换为带注释的源。
当它定期探查程序时,我们将看到等待某些东西的函数。
随着堆栈的移动,我们也会看到 call 者。
也有回答类似问题的人推荐Zoom。
关于profiling - 我应该使用什么事件探查器来衡量_real_(包括等待系统调用)在此功能上花费的时间,而不是_CPU_,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3992587/