不间断地执行Cpp Linux代码

时间:2016-10-31 07:46:58

标签: c++ linux time critical-section

您是否有一种方法可以让我的代码在Linux GNU中保护其他操作系统中断等安全?例如,如果我有下面的代码,我需要找到确切的执行时间,而不会有其他事情中断我的代码。

我已经查看了pthread_mutex_lock(&cs_mutex);,但无法停止其他操作。

while(1){
//start some method to block other OS overheads
c_start=clock();
some_function();
c_end=clock();
//stop OS overhead block
//calculate time 
}

2 个答案:

答案 0 :(得分:2)

您可以使用clock_gettime

timespec ts;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);

它不会阻止其他进程中断您的代码,但只会执行 您的 进程,并考虑此类中断。

答案 1 :(得分:0)

您不能锁定整个系统以获取只有您的编程使用的已用时间。如果您查看简单的<?php foreach ($grids as $value) { echo $value->image."<br/>"; // will print all images } ?> 命令,您可以看到您的操作系统知道您的应用程序的时间以及用于系统其他操作的时间:

time

正如您所看到的,睡眠命令需要花费一秒多一点的时间,但只会消耗掉#34;什么都没有&#34;在用户级别,但在系统模式下几微秒。

如果您想查看代码的每个功能需要多长时间,请使用[krud@unknown001742754ee6 ~]$ time sleep 1 real 0m1.025s user 0m0.000s sys 0m0.001s 之类的分析器。此工具还为您提供了您的编程功能所消耗的确切时间,几乎与您框中其他操作的中断无关。