unix - समय(1) के उत्पादन में 'वास्तविक', 'उपयोगकर्ता' और 'sys' का क्या अर्थ है?




time benchmarking (3)

$ time foo
real        0m0.003s
user        0m0.000s
sys         0m0.004s
$

समय के उत्पादन में 'वास्तविक', 'उपयोगकर्ता' और 'sys' का क्या अर्थ है?

मेरे ऐप का बेंचमार्किंग करते समय कौन सा सार्थक है?


वास्तविक : प्रक्रिया को शुरू करने से शुरू करने में वास्तविक समय, जैसे कि इसे एक स्टॉपवॉच के साथ मानव द्वारा मापा गया था

उपयोगकर्ता : गणना के दौरान सभी CPUs द्वारा संचयी संचयी समय

sys : स्मृति आवंटन जैसे सिस्टम से संबंधित कार्यों के दौरान सभी CPUs द्वारा संचयी संचयी समय।

ध्यान दें कि कभी-कभी उपयोगकर्ता + sys वास्तविक से अधिक हो सकते हैं, क्योंकि एकाधिक प्रोसेसर समानांतर में काम कर सकते हैं।


वास्तविक प्रक्रिया एक प्रक्रिया के लिए कुल बारी-बारी से समय दिखाता है; जबकि उपयोगकर्ता उपयोगकर्ता द्वारा परिभाषित निर्देशों के लिए निष्पादन समय दिखाता है और Sys सिस्टम कॉल निष्पादित करने के लिए समय के लिए है!

वास्तविक समय में प्रतीक्षा समय भी शामिल है (I / O आदि के लिए प्रतीक्षा समय)


स्वीकार्य उत्तर पर विस्तार करने के लिए, मैं सिर्फ एक और कारण प्रदान करना चाहता था क्यों realuser + sys

ध्यान रखें कि real वास्तविक समय का प्रतिनिधित्व करता है, जबकि user और sys मान CPU निष्पादन समय का प्रतिनिधित्व करते हैं। नतीजतन, एक मल्टीकोर प्रणाली पर, user और / या sys समय (साथ ही साथ उनके योग) वास्तव में वास्तविक समय से अधिक हो सकता है। उदाहरण के लिए, जावा ऐप पर मैं कक्षा के लिए दौड़ रहा हूं मुझे मूल्यों का यह सेट मिलता है:

real    1m47.363s
user    2m41.318s
sys     0m4.013s




benchmarking