我在ubuntu 12.04 x64主機上運行KVM Windows 2008 RC2 x64 guest虛擬機時遇到了一些麻煩。具體來說,與時鐘時間相比,Win32調用QueryPerformanceCounter似乎週期性地產生不可靠的結果。我運行一個循環與此類似:KVM Windows 2008 RC2 guest虛擬機上不可靠的QueryPerformanceCounter
auto zero = tbb::tick_count::now();
while (true) {
std::cout << datetime::now()
<< " delta: " << (tbb::tick_count::now() - zero).seconds()
<< std::endl;
zero = tbb::tick_count::now();
Sleep (1000);
}
以上,TBB :: tick_count超過QueryPerformanceCounter和日期時間::瘦包裝NOW()使用系統時鐘。定期說,至少每3分鐘一次,三角洲約爲42秒。系統時鐘總是非常準確。
關於可能導致此問題的任何想法?
你如何確定每秒鐘的滴答? –
QueryPerformanceFrequency。上面我使用英特爾tbb庫,它爲我處理,但我也嘗試過直win32以及。 – samwise
使用QueryPerformanceCounter()時存在各種錯誤,請參閱[Python PEP關於不同的時間函數](http://www.python.org/dev/peps/pep-0418/#windows-queryperformancecounter)。不要指望它在所有條件下都是100%可靠的。 – scai