【发布时间】:2017-04-05 13:06:09
【问题描述】:
我想测量在 Linux 中花费在 C 函数上的总时间。不同线程可能同时调用该函数,所花费的时间应该相加。如何从 Linux 进行这种测量?我查看了clock() 函数并计算了函数开始和结束之间的差异。
我在 Stackoverflow 的这个线程中找到了一个使用 clock() 的解决方案:
How to measure total time spent in a function?
但据我了解,这还包括来自线程的 CPU 处理在测量期间执行一些其他功能。这是一个正确的假设吗?
有没有其他方法可以在 Linux 中进行这种测量?
【问题讨论】:
-
“是否有其他方法可以在 Linux 中进行此测量”是,clock_gettime 和 CLOCK_THREAD_CPUTIME_ID。
-
这听起来像XY problem. 你打算用你得到的值做什么?测量一个函数所花费的时间通常是有目的的。你的目的是什么?最好的方法应该是您的问题。
-
目的如下。我有一个处理数据流量的进程,然后这个流量通过回调函数传递给客户端,即它将在同一个进程中执行。我想测量服务器部分正在使用多少容量。我想到的一种方法是测量回调函数中花费的时间,然后从进程的总执行时间中减去它。
标签: c linux multithreading measurement