सी/सी ++ प्रोग्रामर का सबसे तेज़ समय सिस्टम क्या उपयोग कर सकता है?सबसे तेज़ समय संकल्प प्रणाली
उदाहरण के लिए:
समय() 01 जनवरी 1 9 00 00:00 के बाद से सेकंड देगा।
विंडोज पर GetTickCount() सिस्टम के स्टार्ट-अप समय के बाद, मिलीसेकंड में समय देगा, लेकिन यह 49.7 दिनों तक सीमित है (उसके बाद यह केवल शून्य पर वापस आ जाता है)।
मैं मिलीसेकंड में सिस्टम/ऐप स्टार्ट-अप समय के बाद वर्तमान समय, या टिक प्राप्त करना चाहता हूं।
सबसे बड़ी चिंता विधि का ओवरहेड है - मुझे सबसे हल्का चाहिए, क्योंकि मैं इसे प्रति सेकंड कई बार कॉल करने वाला हूं।
मेरा मामला यह है कि मेरे पास एक कार्यकर्ता धागा है, और उस कार्यकर्ता धागे में मैंने लंबित नौकरियां पोस्ट की हैं। प्रत्येक नौकरी में "निष्पादन समय" होता है। इसलिए, मुझे कोई परवाह नहीं है कि समय वर्तमान "वास्तविक" समय है या सिस्टम के अपटाइम के बाद का समय - यह केवल रैखिक और हल्का होना चाहिए।
संपादित करें:
unsigned __int64 GetTickCountEx()
{
static DWORD dwWraps = 0;
static DWORD dwLast = 0;
DWORD dwCurrent = 0;
timeMutex.lock();
dwCurrent = GetTickCount();
if(dwLast > dwCurrent)
dwWraps++;
dwLast = dwCurrent;
unsigned __int64 timeResult = ((unsigned __int64)0xFFFFFFFF * dwWraps) + dwCurrent;
timeMutex.unlock();
return timeResult;
}
क्या आप इसे अपटाइम> 49.7 दिनों के साथ सिस्टम पर चलाने की उम्मीद करते हैं? –
हां। निश्चित रूप से अधिक। – Poni
क्या आप विशेष रूप से विंडोज के बारे में पूछ रहे हैं? पॉज़िक्स प्लेटफार्मों में 'gettimeofday() 'है, जो माइक्रोसॉन्ड परिशुद्धता के साथ कई दशकों को कवर कर सकता है। –