টার্মিনাল প্রক্রিয়াটির কার্যকর করার সময়টি কীভাবে পরিমাপ করতে পারি?


160

আমি কমান্ড লাইনের মাধ্যমে কল করে এমন একটি প্রক্রিয়ার মৃত্যুর সময় পরিমাপ করার চেষ্টা করছি (অর্থাত, প্রক্রিয়াটি শেষ হতে কত সময় লাগে আমি তা জানতে চাই)। এমন কোনও কমান্ড রয়েছে যা আমি এই কমান্ডটি যুক্ত করতে পারি যে এটি অর্জন করবে প্রক্রিয়াটি কল করে?

উত্তর:


197

যোগ timeকমান্ড আপনি পরিমাপ করতে চান আগে। উদাহরণস্বরূপ: time ls

ফলাফলটি দেখতে পাবেন:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

উপর ব্যাখ্যা real, userএবং sys(থেকে man time):

  • real: প্রক্রিয়াটি ব্যবহৃত সেকেন্ডের মধ্যে সময় কাটানো বাস্তব (প্রাচীরের ঘড়ি) সময়।
  • user: প্রক্রিয়াটি সরাসরি (ব্যবহারকারী মোডে) সেকেন্ডে ব্যবহৃত সিপিইউ-সেকেন্ডের মোট সংখ্যা।
  • sys: প্রক্রিয়াটির পক্ষ থেকে ব্যবস্থার দ্বারা ব্যবহৃত মোট সিপিইউ-সেকেন্ডের সংখ্যা (কর্নেল মোডে), সেকেন্ডে।

1
@ninjalj, আপনি আরও তথ্য প্রদান করতে পারি real, userএবং sysবার যে এই কমান্ড আয় হয়?
ক্রিস্টোফার কাইল হরটন

2
এই টুইটটি উত্তর নয় :) আপনি আপনার মন্তব্যে সম্পাদনা করতে এবং এটি করতে পারেন।
মারু

1
মনে রাখবেন যে আপনি sudo apt-get install timeযদি এমন শেল ব্যবহার করছেন যেখানে timeবিল্টিন নেই।
পুলি

1
মনে রাখবেন এটি বাশের timeবিল্টিন থেকে প্রাপ্ত আউটপুট , তবে man timeএটি কার্যকর হবে (যেমন /usr/bin/time, timeপ্যাকেজ থেকে ) এবং এর আউটপুটটি অন্যরকম দেখায়। এছাড়াও বাশে, আপনি help timeবিল্টিনের সাহায্যে দৌড়াতে পারেন।
wjandrea

নোট করুন যে প্রক্রিয়া শেষ হওয়ার অর্থ এই নয় যে সমস্ত কাজ শেষ হয়েছে। সিস্টেম সময় বাফারগুলি ফ্লাশিংয়ের জন্য "সময়" ফেরার পরে একটি অনুলিপি আরও কয়েক মিনিট সময় নিতে পারে (ততক্ষণে নির্ধারিত সিস্টেমে সময় সহ)।
uffan1

43

লাইন বাই লাইন ডেল্টা পরিমাপের জন্য, জ্ঞোমন চেষ্টা করুন ।

এটি একটি কমান্ড লাইন ইউটিলিটি, কিছুটা মুর্টিলের টিএস-এর মতো, অন্য কমান্ডের স্ট্যান্ডার্ড আউটপুটে টাইমস্ট্যাম্প তথ্য প্রিপেন্ড করতে। দীর্ঘ-চলমান প্রক্রিয়াগুলির জন্য দরকারী যেখানে আপনি এত দীর্ঘ সময় নিয়ে যাচ্ছেন তার একটি recordতিহাসিক রেকর্ড চাই।

জ্ঞোমনকে কোনও কিছুর পাইপ দেওয়া প্রতিটি লাইনের জন্য একটি টাইমস্ট্যাম্প তৈরি করে, এটি নির্দেশ করে যে সেই রেখাটি বাফারের শেষ লাইনটি কত দীর্ঘ ছিল - এটি পরবর্তী লাইনটি প্রদর্শিত হতে কতক্ষণ সময় নিয়েছিল। ডিফল্টরূপে, জ্ঞোমন প্রতিটি লাইনের মধ্যবর্তী সময় সেকেন্ডে প্রদর্শন করবে তবে তা কনফিগারযোগ্য।

জ্ঞানমন ডেমো


2
এটি বেশ চতুর।
নাথন আর্থার

1
(লিঙ্কে টাইপ করুন, ভাগ্যক্রমে ইউআরএল ঠিক আছে)। আপনার সাথে sudo npm i gnomon -gথাকলে এটি ইনস্টল করতে পারেন npm। "Progress r" (একই লাইনে থাকা) ব্যবহার করে "অগ্রগতি" রেখাগুলির বিরুদ্ধে এটি কতটা ভাল তা নিশ্চিত নয়: সে ক্ষেত্রে আমি এটিকে পৃথক নয়, একটি দীর্ঘ লাইন হিসাবে গণনা করতে চাই।
টমাসজ গ্যান্ডার

সুতরাং আমরা এটি জ্ঞোমনে পাইপ! এটাই ?
সিয়াস্তো পাইকার্জ


8
date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

টার্মিনালে এই কমান্ডটি চালানো আপনাকে কোনও ফাইল অনুলিপি করার জন্য মোট সময় দেয়


এটি আপনাকে সূচনা সময় এবং শেষ সময় দেবে, সময়কাল নয়।
wjandrea

এটি একটি ভাল উত্তর, কিছু পরিস্থিতিতে। উদাহরণস্বরূপ, নিম্নলিখিত findকমান্ড - 2>/dev/nullপুনর্নির্দেশ ছাড়াই - প্রচুর Permission denied বার্তা দেয় । যাইহোক, 2>/dev/nullএই কমান্ডে যুক্ত করার ফলে সেই কমান্ডের timeঅংশটি ভেঙে যায় । নিম্নলিখিতটি একটি ভাল আপস সরবরাহ করে START="$(date +"%s")" && find 2>/dev/null / -path /mnt -prune -o -name "*libname-server-2.a*" -print; END="$(date +"%s")"; TIME="$((END - START))"; printf 'find command took %s sec\n' "$TIME":, (যেমন) /usr/lib/libname-server-2.a find command took 3 sec একমাত্র আউটপুট হিসাবে দেওয়া।
ভিক্টোরিয়া স্টুয়ার্ট

আমার মন্তব্যে একটি সংযোজন: অবশ্যই, আপনি কেবল চালাতে পারেন time sudo find / -path /mnt -prune -o -name "*libname-server-2.a*" -print(যেমন, হিসাবে sudo) - এই অসংখ্য Permission deniedসতর্কতা এড়ানো ।
ভিক্টোরিয়া স্টুয়ার্ট

4

আমার অ্যাপ্লিকেশন বুটিংয়ের মতো কোনও ক্রিয়াকলাপের জন্য এটি কতক্ষণ সময় নেয় তা গণনা করতে মাঝে মাঝে নিজেকে স্টপওয়াচের প্রয়োজন মনে করি, সেক্ষেত্রে এখানে অনেকগুলি সমাধান কার্যকর নয়।

এই জন্য আমি sw ব্যবহার করতে চাই ।

SW

ইনস্টল করুন

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

ব্যবহার

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.