संदर्भ: मैं एक उच्च प्रदर्शन सी ++ 11 एप्लिकेशन लिख रहा हूं, इसका एक हिस्सा निष्क्रिय कनेक्शन को हटाना है। इसके लिए, मैं अपने कनेक्शन ऑब्जेक्ट में "आखिरी गतिविधि" टाइमस्टैम्प संग्रहीत कर रहा हूं, जो कि जब कोई कार्रवाई की जाती है तो मैं अपडेट करता हूं। मेरे पास एक टाइमर होता है जो हर कुछ सेकंड में चलता है, सभी सत्रों में लूप करता है, और निष्क्रिय लोगों को हटा देता है।सी ++ 11 में वर्तमान समय प्राप्त करने का सबसे तेज़ तरीका क्या है?
वर्तमान में मैं इस कोड का उपयोग कर रहा हूँ वर्तमान टाइमस्टैम्प प्राप्त करने के लिए:
timestamp = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count()
अगर वहाँ यह करने के लिए किसी भी तेज़ तरीका है मैं सोच रहा हूँ? तेजी से मेरा मतलब है टाइमस्टैम्प प्राप्त करने का प्रदर्शन, टाइमस्टैम्प का संकल्प नहीं।
संकल्प मेरे विशिष्ट अनुप्रयोग के लिए वास्तव में महत्वपूर्ण नहीं है, यह एक सेकंड के रूप में कम हो सकता है। इसके अलावा, यूटीसी/स्थानीय कोई फर्क नहीं पड़ता, मैं केवल उसी समय से प्राप्त अन्य टाइमस्टैम्प की तुलना करने के लिए टाइमस्टैम्प का उपयोग कर रहा हूं।
मैं इसे क्रॉस-प्लेटफ़ॉर्म रखना चाहता हूं, लेकिन सशर्त संकलन के साथ प्लेटफ़ॉर्म-विशिष्ट अनुकूलन का भी स्वागत है।
आप 'timestamp = system_clock :: अब(); 'क्यों नहीं करते हैं? – nwp
क्या आपने * मापा * है कि टाइमस्टैम्प-फ़ेचिंग एक बाधा है? क्या आपने (अनुकूलित!) जेनरेट की गई मशीन कोड की जांच की है? –
@nwp में जोड़ने के लिए, आप बस 'system_clock :: अब() - टाइमस्टैम्प <टाइमआउट' देख सकते हैं। –