应用程序不计算内容,但是i / o,读取文件,使用网络。我希望探查者能够展示它。
我希望像callgrind这样的东西会调用clock_gettime每个问题。
或者喜欢oprofile 中断我的应用程序(当它正在休眠或等待socket / file /等等)时,看看它在做什么。
我想要“读”,“连接”,“nanosleep”,“发送”,特别是“fsync”(及其所有来电者)之类的内容为粗体(不是字符串或数字之类的东西)执行计算的函数。)
平台:GNU / Linux @ i386
答案 0 :(得分:2)
快速攻击Linux的简单采样分析器:http://vi-server.org/vi/simple_sampling_profiler.html
它将backtrace(3)
附加到SIGUSR1
上的文件,然后将其转换为带注释的来源。
当它定期探测程序时,我们会看到等待某些东西的功能。
当它走过堆栈时,我们也会看到来电者。
同样,人们会从类似问题的答案中推荐Zoom。
答案 1 :(得分:0)
没有真正的方法可以在不了解您的平台的情况下回答这个问题,而更多地了解您的目标。
当我在英特尔平台上运行时,我喜欢使用Time Stamp Counter (RDTSC)。在亚微秒范围内击败重塑是很困难的。我只是在一大堆代码之前和之后调用它,并比较差异。