क्यों bash समय अधिक सटीक है तो GNU समय?


12

बाइटिन बैश कमांड timeनिष्पादन की सटीक सटीकता देता है और GNU time(आमतौर पर / usr / बिन / समय) सेंटीसेकंड सटीक देता है। times(2)Syscall घड़ियों में समय देता है, और 100 घड़ियों = 1 सेकंड (आमतौर पर), इसलिए सटीक जीएनयू की तरह है time। तो सवाल यह है कि क्या बैश timeका उपयोग किया जाता है ताकि यह अधिक सटीक हो?


हम्म् ... वे दोनों मेरे सिस्टम पर मिलीसेकंड देते हैं ... (FC16)
nico

अजीब। आपको प्रिंटफ ("% d \ n", sysconf (_SC_CLK_TCK)) क्या देता है; जैसा कि मैंने ऊपर कहा है कि 100 होना चाहिए। किसी के पास मेरे समान अवलोकन हैं: dirac.org/linux/time लेकिन फिर भी कोई स्पष्टीकरण नहीं।
सुकस सोवा

हां, वास्तव में यह 100 देता है ...
निको

फिर मुझे नहीं पता कि ऐसा क्यों है। जीएनयू समय को सेकंड में बदलने के लिए sysconf (_SC_CLK_TCK) का उपयोग करने वाले syscall का उपयोग करना चाहिए।
सकस सोवा

FWIW जब आप "बैश time" कहते हैं , तो मेरा मानना ​​है कि आप बीएसडी timeका उपयोग करते हैं getrusage
डेनिस

जवाबों:


16

कुछ हार्डकैश बैश कोड की जांच के बाद मुझे पता चला कि बैश timeउपयोग getrusage()और GNU timeउपयोग करता है times()getrusage()माइक्रोसेकंड संकल्प के कारण कहीं अधिक सटीक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.