यह एक सिस्टम कॉल है, जैसे अन्य सवालों के जवाब में कहा, और अन्य उत्तर आप अपने सिस्टम पर लागत को मापने का एक अच्छा तरीका दे। (एक बार कर्नेल में इसे ज्यादा काम नहीं करना पड़ता है, इसलिए यह शुद्ध सिस्कल ओवरहेड की लागत के करीब है। और लिनक्स ने सिस्कोल को प्रभावी ढंग से कार्यान्वित करने के लिए क्या किया है। इस अर्थ में, आप इसे अच्छी तरह से देख सकते हैं अनुकूलित।)
अन्य उत्तरों के विपरीत, मैं इस बारे में चिंता करने योग्य नहीं होने के कारण इतना सस्ता नहीं मानूंगा। यदि यह एक आंतरिक पाश में है, तो यह इस बात पर निर्भर करता है कि आप अपने आंतरिक लूप में और क्या कर रहे हैं। यदि यह एक सर्वर प्रसंस्करण अनुरोध है, तो यह शायद प्रति अनुरोध कई सिस्कोल कर रहा है, और वास्तव में प्रत्येक अनुरोध की लागत में एक बदलाव नहीं होगा। हालांकि, मैंने कोड देखा है जहां कॉलिंग समय() (या gettimeofday(), जो वास्तव में इसे उबालता है) से syscall ओवरहेड एक हानिकारक प्रभाव पड़ता है।
आप लागत के बारे में चिंतित हैं, अपने आप से पूछना करने के लिए अगले बात क्या समय को खोजने का सस्ता तरीके उपलब्ध हैं। आम तौर पर, एक सस्ता अच्छा तरीका नहीं होने वाला है। यदि आप x86 पर हैं, तो आप सीपीयू को rdtsc निर्देश के साथ पूछ सकते हैं (और अन्य सीपीयू आर्किटेक्चर पर एनालॉग होने की संभावना है) - यह एक एकल असेंबली निर्देश है जिसे विशेषाधिकार नहीं दिया गया है ताकि आप इसे कहीं भी अपने कोड में छोड़ सकें। लेकिन बहुत सारे नुकसान हैं - rdtsc हमेशा अनुमानित दर पर नहीं बढ़ता है, खासकर अगर सीपीयू की गति बिजली प्रबंधन के लिए बदलती है, तो आप जिस सीपीयू का उपयोग कर रहे हैं उसके सटीक मॉडल के आधार पर; मानों को एकाधिक सीपीयू, आदि में सिंक्रनाइज़ नहीं किया जा सकता है। ओएस यह सब ट्रैक रखता है और जब आप gettimeofday() को कॉल करते हैं तो जानकारी के अनुकूल, उपयोग में आसान संस्करण प्रदान करेंगे।
यह निश्चित रूप से एक बाधा नहीं है, लेकिन मुझे आश्चर्य है कि प्रसंस्करण समय के संदर्भ में क्या प्रभाव है। मुझे लगता है कि यह एक बेहद अनुकूलित कॉल है, लेकिन आश्चर्य है कि अगर किसी के पास इस बारे में स्पष्ट जानकारी है। – anselm
@anselm - मुझे संदेह है कि किसी ने इस कार्य को पहले प्रदर्शन समस्या के रूप में देखा है। आप इसे बेंचमार्क क्यों नहीं करते? –
मुझे किसी शर्त है। मैंने कभी भी 'टाइम' को विशेष रूप से नहीं देखा है, लेकिन मुझे जावा फंक्शन 'System.getCurrentTimeMillis' के प्रदर्शन की जांच करनी पड़ी, क्योंकि एक ग्राहक ने दावा किया कि हमारा कार्यान्वयन एक बाधा था।जो यह नहीं था, मैं जोड़ सकता हूं, वे सिर्फ अपने कोड का विश्लेषण नहीं कर रहे थे। लेकिन सिस्टम समय प्राप्त करना वास्तव में विंडोज़ पर धीमा था (कई एमएस आईआईआरसी, लेकिन मैं गलत हो सकता था), और मुझे लिनक्स पर तेज़ी से लगता है। बहुत समय पहले, हालांकि। –