嗨,有没有一种方法,我可以让我的代码在Linux GNU的其他操作系统中断等安全? 例如,如果我有下面的代码,我需要find确切的执行时间,没有其他事情打断我的代码。
我已经看过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 }
将线程移植到窗口。 关键部分非常缓慢
在Windows上inputCriticalCritical和CRITICAL_SECTION
对于在Windows上运行的未阻止线程等待执行,16毫秒的时间长度exception长?
EnterCriticalSection块永远
在什么情况下,Windows Critical Section会有一个负的Lock Count?
为什么是HANDLEtypes的CRITICAL_SECTION的OwningThread成员,当它表示线程ID?
Windows内核级全局关键部分
InitializeCriticalSectionAndSpinCount最优SpinCount(用户模式)
你可以使用clock_gettime :
timespec ts; clock_gettime(CLOCK_PROCESS_cpuTIME_ID,&ts);
它不会阻止其他进程中断你的代码,但它只会让你的进程执行时间考虑到这样的中断。
你不能锁定整个系统来获得只有你的编程使用的时间。 如果您看一下简单的time命令,您可以看到您的操作系统知道哪个时间到达您的应用程序,哪些时间用于系统的其他操作:
[krud@unkNown001742754ee6 ~]$ time sleep 1 real 0m1.025s user 0m0.000s sys 0m0.001s
正如您所看到的,睡眠命令需要多于一秒的时间,但是在用户级别只消耗“无”,而在系统模式下仅消耗几微秒。
如果要查看代码的每个函数需要多少时间,请使用像gprof这样的分析器。 这个工具也给你你的编程功能消耗的确切时间,几乎独立于你的其他行动中断的框。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。