关于linux:如何在c中查找进程的调度延迟

how to find scheduling delay for a process in c

我在linux上有一个C程序。 在执行我的程序期间,如果进程面临超过阈值的调度延迟,我想做出一些决定。

关于我如何找到这个统计数据的任何建议?

P.S。:通过调度延迟,我指的是等待调度的进程所花费的时间,即在调度程序队列中花费的时间。


time()功能允许您测量"挂钟"时间:http://linux.die.net/man/2/time
另一方面,clock()功能允许您测量进程使用的CPU时间:http://linux.die.net/man/3/clock

通过减去这两个,您可以得到您所要求的近似值。

PS:为了更准确的测量(时间有第二个分辨率),你可以使用clock_gettime:http://linux.die.net/man/3/clock_gettime


您可以将计时器设置为关闭,比如每分钟或任何适当的间隔,然后使用getrusage()收集统计数据并根据这些结果(连续值之间的差异),您可以做出决定然后