[英]How can I make my own timer without standard library?
是否有一些特定的迭代次數,我可以使用for loop
,因此完全執行循環需要1秒鍾? 例如,以下代碼在我的機器上執行了0.125秒:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
long long a=0;
for (a=0;a<=pow(10,4);a++);
}
雖然,<= 8 * pow(10,4)需要0.206秒。 編譯器是GCC 4.9.2。 IDE是代碼塊。
我的電腦的規格:操作系統:Windows 8.1
根據收到的評論,我將這個答案發布到您的問題中。
制作計時器是不可能的,因為:
人們將不得不使用實時操作系統來實現這一目標。 非實時操作系統中存在太多抖動。 Windows可以決定暫時安排其他進程,或者將CPU用於例如內核網絡,磁盤I / O等優先於時間的CPU。 (由nos)
人們不能僅僅在標准C ++中在托管環境中“制作自己的計時器”。 定時器本質上是一種與OS調度程序通信的機制,並且需要特定於平台的OS服務。 (由Kerrek SB提供)
編譯器將優化這樣的循環並通過死代碼消除(通過πάνταῥεῖ和Jongware)將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.