के साथ लिनक्स कर्नेल स्पेस में मापने का समय मैं वर्तमान में कर्नेल में समय मापने के लिए do_gettimeofday()
फ़ंक्शन का उपयोग कर रहा हूं, जो मुझे माइक्रोसेकंड सटीकता देता है। क्या वहां कुछ भी उपलब्ध है जो इससे अधिक सटीक है (शायद नैनोसेकंड के क्रम पर)?उप-माइक्रोसेकंड प्रेसिजन
उत्तर
ktime_get()
फ़ंक्शन ktime_t
, जो संकल्प nanosecond गया है।
इस फ़ंक्शन का उपयोग करने वाला निम्न कोड 0 का उत्पादन करता है: लंबे समय तक int nsTime = ktime_to_ns (ktime_get()); \t प्रिंटक ("एनएस में प्रारंभ समय% d" है, एनएसटाइम); कोई विचार क्यों? –
@ जॉन रॉबर्ट्स: आपको 'लंबे समय तक int' प्रिंट करने के लिए '% lld' का उपयोग करने की आवश्यकता है। – caf
@caf: मुझे एक ही समस्या है, यानी, मुझे 0 एनएस मिल रहा है। कोड ऐसा कुछ दिखता है ... प्रारंभ = ktime_get(); ... फ़ंक्शन(); ... अंत = ktime_get(); वास्तविक_टाइम = ktime_to_ns (ktime_sub (अंत, प्रारंभ)); प्रिंटक (KERN_INFO "समय लिया गया =% lld \ n", (लंबा लंबा) वास्तविक_टाइम); –
जैसा कि मुझे पता है, सबसे सटीक टाइमर प्रोसेसर विशिष्ट काउंटर रजिस्टर (जैसे x12 में TSC) होना चाहिए। लिनक्स कर्नेल इस रजिस्टर मान को पढ़ने के लिए "./arch/x86/include/asm/msr.h" फ़ाइल से rdtsc, rdtscl, rdtscll मैक्रोज़ प्रदान करता है। एआरएम के लिए, cycle counter register।
ये रजिस्ट्रार सीपीयू से सीपीयू के लिए अलग हैं। इसे एक्सेस करने के लिए सामान्य इंटरफ़ेस "get_cycles" फ़ंक्शन है जिसे फ़ाइल में घोषित किया गया है।
शायद, this document सहायक हो सकता है।
बहु-कोर मशीनों की बात करते समय टीएससी बहुत अविश्वसनीय नहीं है? –
आप सही हैं। बहु-कोर मशीन में, किसी विशिष्ट CPU से TSC रजिस्टर का उपयोग करने के लिए सावधान रहना चाहिए। – Wonil
- 1. AVMetadataFaceObject प्रेसिजन
- 2. प्रेसिजन Erlang में
- 3. लंबाई बनाम प्रेसिजन
- 4. फ्लोट प्रेसिजन डिस्प्ले (एंड्रॉइड)
- 5. जेवीएम मनमानी प्रेसिजन पुस्तकालय
- 6. PHP में मनमानी-प्रेसिजन मठ
- 7. सी ++ (जीसीसी) में चौगुनी प्रेसिजन
- 8. जावा फ़्लोटिंग प्वाइंट प्रेसिजन इश्यू
- 9. लिनक्स कर्नेल टाइमर उपप्रणाली: प्रेसिजन बनाम संकल्प
- 10. .NET में सिंगल प्रेसिजन मैथ ऑपरेशंस?
- 11. मल्टीक्लास-मल्टीलाबेल वर्गीकरण के लिए प्रेसिजन/रिकॉल
- 12. फिक्स्ड() और प्रेसिजन() के बीच अंतर?
- 13. रेल 2.3.11 दिनांक समय BigDecimal प्रेसिजन
- 14. पांडस डेटाफ्रेम तुलना और फ़्लोटिंग प्वाइंट प्रेसिजन
- 15. स्ट्रिंग टू स्ट्रिंग कनवर्ट करना - लॉस प्रेसिजन
- 16. आईओएस: 3 डी स्पेस में मूवमेंट प्रेसिजन
- 17. विस्तारित प्रेसिजन फ्लोटिंग प्वाइंट लाइब्रेरी C/C++
- 18. प्रेसिजन अंतर पायथन और सी ++ मुद्रण जब डबल्स
- 19. क्या कोई पीटीपी (प्रेसिजन टाइम प्रोटोकॉल | आईईईई 1588) पुस्तकालय है?
- 20. प्रेसिजन खोया जबकि एसक्यूएल में थोक डालने रिकॉर्ड SqlBulkCopy
- 21. एलिक्सीर में प्रेसिजन के लिए एक संख्या कैसे प्रारूपित करें?
- 22. Tensorflow प्रेसिजन/याद/एफ 1 स्कोर और भ्रम मैट्रिक्स
- 23. एक पास में प्रेसिजन, रिकॉल और एफ-स्कोर की गणना - पायथन
- 24. इस तरह बढ़ावा साथ उपयोग करना * चौड़ाई और प्रेसिजन विनिर्देशक :: प्रारूप
- 25. सी कोड का उचित डिज़ाइन जो सिंगल- और डबल-प्रेसिजन फ़्लोटिंग पॉइंट दोनों को संभालता है?
- 26. विज्ञान सीखना त्रुटि संदेश 'प्रेसिजन और एफ-स्कोर बीमार हैं और लेबलों में 0.0 पर सेट किए जा रहे हैं'
- 27. ओपनबीयूजीएस मॉडल पर अभिसरण करने में विफल रहता है जो WinBUGS में अभिसरण करता है। प्रेसिजन सीमा?
- 28. कुछ एसएसई "mov" निर्देश क्यों निर्दिष्ट करते हैं कि वे फ़्लोटिंग-पॉइंट मानों को स्थानांतरित करते हैं?
- 29. पायथन
- 30. याद है, याद दर @ कश्मीर और शीर्ष कश्मीर सिफारिश
आप वास्तव में "ठीक" मापने के लिए क्या चाहते हैं ...? और आपका हार्डवेयर उतना निर्धारक नहीं है जितना आप सोचते हैं (कैश मिस समय को बहुत बदल सकता है) –
मैं उस समय को मापना चाहता हूं जब यह एक निश्चित ऑपरेशन करने के लिए हार्डवेयर का एक निश्चित टुकड़ा लेता है। मैं इसे अपने ड्राइवर में माप रहा हूं। –