2009-04-30 12 views
5

मैं एक सी ++ एप्लिकेशन निष्पादित करने के लिए एक खोल स्क्रिप्ट चला रहा हूं, जो एपीआई के प्रदर्शन को मापता है। मैं एपीआई के विलंबता (पैरामीटर के दिए गए सेट के लिए मूल्य वापस करने के लिए लिया गया समय) पर कब्जा कर सकता हूं, लेकिन मैं 5-10 सेकेंड के अंतराल पर सीपीयू और मेमोरी उपयोग को कैप्चर करना चाहता हूं।सीपीयू और मेमोरी उपयोग गतिशील रूप से कैप्चर करें

सिस्टम के प्रदर्शन को प्रभावित किए बिना ऐसा करने का कोई तरीका है और वह भी उसी स्क्रिप्ट के भीतर है? मुझे कई उदाहरण मिल गए हैं जहां कोई भी स्क्रिप्ट के बाहर (स्वतंत्र रूप से) कर सकता है; लेकिन ऐसा नहीं है जहां हम एक ही स्क्रिप्ट के भीतर कर सकते हैं।

+0

संभावित डुप्लिकेट ([? मैं CPU उपयोग और लिनक्स पर एक भी प्रक्रिया (उबंटू) की स्मृति उपयोग कैसे प्राप्त कर सकते हैं] http://stackoverflow.com/questions/1221555/ कैसे-कर-मैं-प्राप्त-द-सीपीयू-उपयोग-और-स्मृति-उपयोग-एक-एकल-प्रक्रिया-ऑन-लिनक्स-उबंट) –

+0

http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even- यद्यपि-यह-बहुत-नया-और-हा ;-) –

उत्तर

2

मैं 'time' कमांड और 'vmstat' कमांड का उपयोग करने का सुझाव देना चाहता हूं। पहला सिस्टम के सीपीयू/मेमोरी/आईओ के डंप को निष्पादन योग्य निष्पादन और दूसरा आवधिक (यानी प्रति सेकंड एक बार) का सीपीयू उपयोग देगा।

उदाहरण:

time dd if=/dev/zero bs=1K of=/dev/null count=1024000 
1024000+0 records in 
1024000+0 records out 
1048576000 bytes (1.0 GB) copied, 0.738194 seconds, 1.4 GB/s 
0.218u 0.519s 0:00.73 98.6%  0+0k 0+0io 0pf+0w <== that's time result 
की
+0

क्या आप एक उदाहरण प्रदान कर सकते हैं? मैंने खोल के अंदर भी कोशिश की, लेकिन यह उम्मीद है कि प्रक्रिया खत्म हो जाएगी और मेरे पास एक ही स्क्रिप्ट में चल रहे कॉल के कई उदाहरण हैं ... दूसरे के बाद एक पंक्ति लिखी गई है। – gagneet

+0

मैंने एक उदाहरण जोड़ा, मुझे लगता है कि आपको आउटपुट एकत्र करने और इसे मैन्युअल रूप से योग करने की आवश्यकता होगी। एक स्क्रिप्ट में सभी रन बनाने और इसके लिए 'समय' करने का एक और सुझाव। – Drakosha

संबंधित मुद्दे