我在linux上有一个C程序。在执行我的程序的过程中,如果进程面临高于阈值的调度延迟,我想作出一些决定。如何在c中找到进程的调度延迟
有关我如何找到此统计信息的任何建议?
P.S .:通过调度延迟我意味着等待调度的进程花费的时间,即花费在调度器队列中的时间。
我在linux上有一个C程序。在执行我的程序的过程中,如果进程面临高于阈值的调度延迟,我想作出一些决定。如何在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()
统计数据,并根据这些结果(连续值之间的差),你可以把你的决定再
你所说的“调度延迟”是什么意思?你能否详细说明一下? – 2014-09-12 18:49:00
我指的是进程在调度程序队列中花费多少时间,即等待排定的时间。 – 2014-09-12 18:54:18
@Siddharth:你应该*编辑你的问题*来改善它,而不是回答评论。 – 2014-09-12 18:55:36