我在linux上有一个C程序。在执行我的程序期间,如果进程面临超过阈值的调度延迟,我想做出一些决定。
有关我如何找到此统计信息的任何建议?
P.S。:通过调度延迟,我指的是等待调度的进程所花费的时间,即在调度程序队列中花费的时间。
答案 0 :(得分:2)
您可以将计时器设置为关闭,比如每分钟或任何适当的间隔,然后使用getrusage()
收集统计数据并根据这些结果(连续值之间的差异),您可以做出决定然后
答案 1 :(得分:2)
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