time(1) General Commands Manual time(1)

time - زمان‌سنجی یک دستور ساده یا ارائه میزان مصرف منابع

time [option ...] command [argument ...]

دستور time برنامه مشخص‌شده در command را با آرگومان‌های داده‌شده اجرا می‌کند. هنگامی که command به پایان می‌رسد، time پیامی حاوی آمارهای زمانی مربوط به اجرای این برنامه را در خروجی خطای استاندارد می‌نویسد. این آمارها شامل (۱) زمان واقعی سپری‌شده بین فراخوانی و خاتمه، (۲) زمان پردازنده کاربر (مجموع مقادیر tms_utime و tms_cutime در یک struct tms همان‌طور که توسط times(2) برگردانده می‌شود)، و (۳) زمان پردازنده سیستم (مجموع مقادیر tms_stime و tms_cstime در یک struct tms همان‌طور که توسط times(2) برگردانده می‌شود) هستند.

نکته: برخی پوسته‌ها (مانند bash(1)) دارای یک دستور درونی time هستند که اطلاعات مشابهی درباره مصرف زمان و احتمالاً سایر منابع ارائه می‌دهد. برای دسترسی به دستور واقعی، ممکن است لازم باشد مسیر کامل آن را مشخص کنید (چیزی مانند /usr/bin/time).

هنگام قرار داشتن در لوکال POSIX، از قالب سنتی دقیق استفاده می‌کند:

"real %f\nuser %f\nsys %f\n"

(با اعدادی بر حسب ثانیه) که در آن تعداد ارقام اعشار در خروجی برای %f نامشخص است، اما برای بیان دقت تیک ساعت کافی بوده و حداقل یک رقم است.

اگر command فراخوانی شده باشد، وضعیت خروج همان وضعیت خروج command است. در غیر این صورت، اگر command یافت نشود ۱۲۷، اگر یافت شود اما نتوان آن را فراخوانی کرد ۱۲۶، و در صورت بروز هر خطای دیگر مقدار غیرصفر دیگری (۱–۱۲۵) خواهد بود.

متغیرهای LANG، LC_ALL، LC_CTYPE، LC_MESSAGES، LC_NUMERIC و NLSPATH برای متن و قالب‌بندی خروجی استفاده می‌شوند. متغیر PATH برای جستجوی command استفاده می‌شود.

در ادامه توضیحات نسخه ۱.۷ گنو از time آمده است. صرف‌نظر از نام این ابزار، گنو اطلاعات مفید زیادی را نه تنها درباره زمان مصرف‌شده، بلکه درباره سایر منابع مانند حافظه، ورودی/خروجی و فراخوانی‌های IPC (در صورت وجود) در خروجی نمایش می‌دهد. خروجی با استفاده از یک رشته قالب مشخص می‌شود که می‌توان آن را با استفاده از گزینه -f یا متغیر محیطی TIME تعیین کرد.

رشته قالب پیش‌فرض به شرح زیر است:


%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

هنگامی که گزینه -p داده شود، از قالب خروجی (قابل‌حمل) استفاده می‌شود:


real %e
user %U
sys %S

قالب به شیوه معمول مشابه printf(3) تفسیر می‌شود. نویسه‌های معمولی مستقیماً کپی می‌شوند، tab، newline و backslash با استفاده از \t، \n و \\ گریز داده می‌شوند، علامت درصد با %% نمایش داده می‌شود و در غیر این صورت % نشان‌دهنده یک تبدیل است. برنامه time همیشه یک خط جدید انتهایی را خودش اضافه می‌کند. تبدیل‌ها در ادامه آمده‌اند. تمام تبدیل‌های استفاده‌شده توسط tcsh(1) پشتیبانی می‌شوند.

زمان

%E
زمان واقعی سپری‌شده (بر حسب [ساعت:]دقیقه:ثانیه).
%e
(در tcsh(1) وجود ندارد.) زمان واقعی سپری‌شده (بر حسب ثانیه).
%S
تعداد کل ثانیه‌های CPU که فرایند در حالت هسته سپری کرده است.
%U
تعداد کل ثانیه‌های CPU که فرایند در حالت کاربر سپری کرده است.
%P
درصد پردازنده‌ای که به این کار اختصاص یافته است، محاسبه‌شده به‌صورت (%U + %S) / %E.

حافظه

%M
حداکثر اندازه مقیم در حافظه فرایند در طول عمر آن، بر حسب کیلوبایت.
%t
(در tcsh(1) وجود ندارد.) میانگین اندازه مقیم در حافظه فرایند، بر حسب کیلوبایت.
%K
میانگین کل مصرف حافظه (داده+پشته+متن) فرایند، بر حسب کیلوبایت.
%D
میانگین اندازه ناحیه داده اشتراک‌گذاری‌نشده فرایند، بر حسب کیلوبایت.
%p
(در tcsh(1) وجود ندارد.) میانگین اندازه فضای پشته اشتراک‌گذاری‌نشده فرایند، بر حسب کیلوبایت.
%X
میانگین اندازه فضای متن اشتراک‌گذاری‌شده فرایند، بر حسب کیلوبایت.
%Z
(در tcsh(1) وجود ندارد.) اندازه صفحه سیستم، بر حسب بایت. این مقدار برای هر سیستم ثابت است، اما میان سیستم‌های مختلف تفاوت دارد.
%F
تعداد نقص صفحه‌های عمده که در زمان اجرای فرایند رخ داده است. این‌ها خطاهایی هستند که در آن‌ها صفحه باید از دیسک خوانده شود.
%R
تعداد نقص صفحه‌های جزئی یا قابل بازیابی. این‌ها خطاهایی برای صفحاتی هستند که معتبر نیستند اما هنوز توسط سایر صفحات مجازی گرفته نشده‌اند. بنابراین داده‌های موجود در صفحه همچنان معتبر هستند اما جدول‌های سیستم باید به‌روزرسانی شوند.
%W
تعداد دفعاتی که فرایند از حافظه اصلی به فضای swap منتقل شده است.
%c
تعداد دفعاتی که تعویض زمینه فرایند به‌صورت غیرداوطلبانه رخ داده است (به دلیل پایان یافتن برش زمانی).
%w
تعداد انتظارها: دفعاتی که برنامه به‌صورت داوطلبانه تعویض زمینه شده است، برای مثال هنگام انتظار برای تکمیل یک عملیات ورودی/خروجی.

ورودی/خروجی

%I
تعداد ورودی‌های سیستم‌فایل توسط فرایند.
%O
تعداد خروجی‌های سیستم‌فایل توسط فرایند.
%r
تعداد پیام‌های سوکت دریافت شده توسط فرایند.
%s
تعداد پیام‌های سوکت ارسال شده توسط فرایند.
%k
تعداد سیگنال‌های تحویل داده شده به فرایند.
%C
(در tcsh(1) وجود ندارد.) نام و آرگومان‌های خط فرمان دستور در حال زمان‌سنجی.
%x
(در tcsh(1) وجود ندارد.) وضعیت خروج دستور.

قالب خروجی را مشخص می‌کند، و احتمالاً قالبی را که در متغیر محیطی TIME مشخص شده لغو می‌کند.
از قالب خروجی قابل‌حمل استفاده می‌کند.
نتایج را به stderr نمی‌فرستد، بلکه فایل مشخص‌شده را بازنویسی می‌کند.
(همراه با -o استفاده می‌شود.) فایل را بازنویسی نمی‌کند بلکه داده‌ها را ضمیمه می‌کند.
خروجی بسیار مفصلی درباره تمام اطلاعاتی که برنامه می‌داند ارائه می‌دهد.
خاتمه غیرعادی برنامه (زمانی که command با یک سیگنال متوقف می‌شود) یا وضعیت خروج غیرصفر را گزارش نمی‌کند.

پیام راهنمای استفاده را در خروجی استاندارد چاپ کرده و با موفقیت خارج می‌شود.
اطلاعات نسخه را در خروجی استاندارد چاپ کرده و با موفقیت خارج می‌شود.
--
پایان فهرست گزینه‌ها را مشخص می‌کند.

همه منابع توسط تمام نسخه‌های UNIX اندازه‌گیری نمی‌شوند، بنابراین ممکن است برخی از مقادیر صفر گزارش شوند. انتخاب فعلی عمدتاً از داده‌های ارائه‌شده توسط 4.2 یا 4.3BSD الهام گرفته شده است.

نسخه ۱.۷ برنامه GNU time هنوز بومی‌سازی نشده است. بنابراین، الزامات POSIX را پیاده‌سازی نمی‌کند.

متغیر محیطی TIME انتخاب نامناسبی بوده است. برای سیستم‌هایی مانند autoconf(1) یا make(1) غیرمعمول نیست که از متغیرهای محیطی هم‌نام با ابزار برای بازتعریف ابزار مورد استفاده بهره ببرند. استفاده‌هایی مانند MORE یا TIME برای گزینه‌های برنامه‌ها (به جای مسیر برنامه‌ها) معمولاً منجر به بروز مشکلاتی می‌شود.

به نظر نامناسب است که -o به جای ضمیمه کردن، فایل را بازنویسی می‌کند. (یعنی گزینه -a باید حالت پیش‌فرض می‌بود.)

پیشنهادها و گزارش‌های اشکال برای GNU time را به bug-time@gnu.org ارسال کنید. لطفاً نسخه time، که می‌توانید با اجرای دستور زیر دریافت کنید:


time --version

و همچنین سیستم‌عامل و کامپایلر C مورد استفاده خود را قید نمایید.

bash(1), tcsh(1), times(2), wait3(2)

2026-02-08 Linux man-pages 6.19