বিভিন্ন শেলের মধ্যে স্ক্রিপ্টগুলির রান সময়কে তুলনা করার জন্য, কিছু এসই উত্তর bash
' বিল্ট-ইন time
কমান্ড ব্যবহার করার পরামর্শ দেয় , যেমন:
time bash -c 'foo.sh'
time dash -c 'foo.sh'
... ইত্যাদি , প্রতিটি শেল পরীক্ষা করার জন্য। এই জাতীয় মানদণ্ডগুলি প্রতিটি শেল লোড হওয়ার এবং নিজেকে আরম্ভ করার জন্য গৃহীত সময়কে হারাতে ব্যর্থ হয় । উদাহরণস্বরূপ, ধরুন উপরের দুটি কমান্ডই আস্তে আস্তে ফ্লপি ডিস্কের (124KB / s) পড়ার গতিতে ধীর ডিভাইসে সংরক্ষণ করা হয়েছিল , dash
(একটি 150 ডলার এক্সিকিউটেবল) শেল ( ~ 1M ) এর চেয়ে প্রায় 7x দ্রুত লোড করবে লোডিংয়ের সময়গুলি সংখ্যাগুলিকে স্কিউ করে দেবে - শেলগুলি লোড হওয়ার পরে প্রতিটি শেলের নীচে রানের সময়গুলি পরিমাপ করার জন্য she শেলগুলির প্রাক-লোডিং সময় অপ্রাসঙ্গিক ।bash
time
foo.sh
স্ক্রিপ্ট টাইমিংয়ের জন্য চালানোর সেরা পোর্টেবল এবং সাধারণ ব্যবহার কী যা প্রতিটি শেলের মধ্যে থেকে চালানো যেতে পারে ? সুতরাং উপরের কোডটি এমন কিছু দেখবে:
bash -c 'general_timer_util foo.sh'
dash -c 'general_timer_util foo.sh'
এনবি: কোনও শেল বিল্ট-ইন time
কমান্ড নেই, যেহেতু কোনওই বহনযোগ্য বা সাধারণ নয় are
ব্যবহারকারীর শেলটির অভ্যন্তরীণ কমান্ডগুলি এবং পাইপলাইনগুলির দ্বারা গ্রহণ করা সময়টিকে প্রথমে স্ক্রিপ্টে মোড়ানো না করেও যদি বেঞ্চমার্ক সক্ষম হয় তবে আরও ভাল। এই জাতীয় কৃত্রিম বাক্য গঠন সাহায্য করবে:
general_timer_util "while read x ; do echo x ; done < foo"
কিছু শেল time
এটি পরিচালনা করতে পারে। যেমন bash -c "time while false ; do : ; done"
কাজ করে। আপনার সিস্টেমে কী কাজ করে (এবং না) তা দেখার জন্য চেষ্টা করুন:
tail +2 /etc/shells |
while read s ; do
echo $s ; $s -c "time while false ; do : ; done" ; echo ----
done
/usr/bin/time
?