का निष्पादन समय प्रिंट करें निम्नलिखित संयोजन के साथ शेल कमांड के निष्पादन समय को मुद्रित करना संभव है?शेल कमांड
[email protected]:~# "command to execute" && echo "execution time"
का निष्पादन समय प्रिंट करें निम्नलिखित संयोजन के साथ शेल कमांड के निष्पादन समय को मुद्रित करना संभव है?शेल कमांड
[email protected]:~# "command to execute" && echo "execution time"
मत भूलना वहाँ के बीच एक अंतर है कि पार्टी के builtin time
(जो डिफ़ॉल्ट रूप से बुलाया जाना चाहिए जब आप time command
करें) और /usr/bin/time
(जो आपको इसे अपने पूर्ण पथ से कॉल करने की आवश्यकता होनी चाहिए)।
बिल्टिन time
हमेशा stderr पर प्रिंट करता है, लेकिन /usr/bin/time
आपको एक विशिष्ट फ़ाइल में समय का आउटपुट भेजने की अनुमति देगा, इसलिए आप निष्पादित कमांड की stderr स्ट्रीम में हस्तक्षेप नहीं करते हैं। इसके अलावा, /usr/bin/time
के प्रारूप जबकि पार्टी के builtin time
प्रारूप केवलTIMEFORMAT
वातावरण चर द्वारा विन्यस्त है, कमांड लाइन या वातावरण चर TIME
द्वारा पर विन्यास योग्य है।
$ time factor 1234567889234567891 # builtin
1234567889234567891: 142662263 8653780357
real 0m3.194s
user 0m1.596s
sys 0m0.004s
$ /usr/bin/time factor 1234567889234567891
1234567889234567891: 142662263 8653780357
1.54user 0.00system 0:02.69elapsed 57%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+215minor)pagefaults 0swaps
$ /usr/bin/time -o timed factor 1234567889234567891 # log to file `timed`
1234567889234567891: 142662263 8653780357
$ cat timed
1.56user 0.02system 0:02.49elapsed 63%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+217minor)pagefaults 0swaps
[email protected]:~# time [command]
यह भी इस्तेमाल किया इस्तेमाल किया वास्तविक समय और सिस्टम समय के बीच अलग करता है।
निश्चित रूप से बुनियादी जवाब है कि - लेकिन अगर आप आदेश से त्रुटि उत्पादन को देखने के लिए और अभी तक मानक आउटपुट में समय जानकारी भेजने के रूप में सवाल करता है चाहते हैं कुछ जटिलताओं देखते हैं। टाइम कमांड stderr लिखता है। आप जो सुझाव देते हैं वह शायद सटीक है - इसलिए मेरा +1। –
'time' tty को लिखता है, stderr नहीं। जो मुझे लगता है चीजें बदतर बना देता है। – mob
time
अधिकांश गोले में अंतर्निहित कमांड है जो टीटी को निष्पादन समय की जानकारी लिखता है।
तुम भी
start_time=`date +%s`
<command-to-execute>
end_time=`date +%s`
echo execution time was `expr $end_time - $start_time` s.
की तरह या bash
में कुछ की कोशिश कर सकते:
start_time=`date +%s`
<command-to-execute> && echo run time is $(expr `date +%s` - $start_time) s
zsh में आप पार्टी में
=time ...
का उपयोग करें या ZSH आप
command time ...
ये (अलग तंत्र द्वारा) का उपयोग कर सकते एक बाहरी कमांड इस्तेमाल किया जा करने के लिए मजबूर कर सकते हैं।
@ भीड़ के जवाब देने के लिए जोड़ा जा रहा है:
%N
date +%s
को जोड़ हमें सटीकता nanosecond देता है:
start=`date +%s%N`;<command>;end=`date +%s%N`;echo `expr $end - $start`
मैं एक प्रतिलिपि या हैश की तरह एक लंबी चलने वाली प्रक्रिया शुरू कर रहा हूँ और मैं जानना चाहते हैं इसे बाद में कितनी देर तक ले लिया है, मैं तो बस ऐसा करते हैं:
$ date; sha1sum reallybigfile.txt; date
निम्नलिखित में से कौन उत्पादन में परिणाम होगा:
Tue Jun 2 21:16:03 PDT 2015
5089a8e475cc41b2672982f690e5221469390bc0 reallybigfile.txt
Tue Jun 2 21:33:54 PDT 2015
अनुमोदित, जैसा कि यहां कार्यान्वित किया गया है, यह बहुत सटीक नहीं है और समय बीतने की गणना नहीं करता है। लेकिन यह गंदगी सरल है और कभी-कभी आपको चाहिए।
लाइन-दर-लाइन डेल्टा माप के लिए, gnonom आज़माएं।
यह एक कमांड लाइन उपयोगिता है, थोड़ी अधिक पसंद है, टाइमस्टैम्प जानकारी को किसी अन्य कमांड के मानक आउटपुट में प्रीपेड करने के लिए।लंबे समय तक चलने वाली प्रक्रियाओं के लिए उपयोगी जहां आप इतने लंबे समय से क्या ले रहे हैं के ऐतिहासिक रिकॉर्ड चाहते हैं।
gnomon को कुछ भी पिपिंग करना प्रत्येक पंक्ति में एक टाइमस्टैम्प तैयार करेगा, यह दर्शाता है कि बफर में आखिरी पंक्ति कितनी लंबी थी - यानी, अगली पंक्ति को प्रदर्शित होने में कितना समय लगेगा। डिफ़ॉल्ट रूप से, gnomon प्रत्येक पंक्ति के बीच समाप्त सेकंड प्रदर्शित करेगा, लेकिन यह विन्यास योग्य है।
'मैन बाश' से: "TIMEFORMAT चर को एक प्रारूप स्ट्रिंग पर सेट किया जा सकता है जो निर्दिष्ट करता है कि समय की जानकारी कैसे प्रदर्शित की जानी चाहिए" –
ओह - I * सोचा * इसे प्रारूपित करने का कोई तरीका था, लेकिन मुझे इसे 'सहायता समय' में याद आया क्योंकि मैंने केवल उस पर ध्यान दिया और मैंने सोचा कि यह एक कमांड लाइन तर्क था। मैं जवाब अपडेट करूंगा। –
-1 यह सवाल का जवाब देने के लिए प्रतीत नहीं होता है। –