اطلاعیه

بستن
No announcement yet.

time ابزاری مفید در ترمینال !

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    time ابزاری مفید در ترمینال !

    دستور time را می توان به عنوان ابزاری برای نشان دادن زمان اجرای برنامه ها در پارامتر های زیر معرفی کرد :

    1 - زمان صرف شده توسط برنامه در مد کاربری (user mode)
    2 - زمان صرف شده توسط برنامه در مد هسته
    3 - متوسط حافظهٔ (RAM) استفاده شده در برنامه

    این دستور به عنوان یک ابزار اختصاصی به این منظور در لینوکس مورد استفاده قرار می گیرد.

    “time” نام برنامه را به عنوان ورودی دریافت می کند و اطلاعاتی را در رابطه با منابعی که برنامه مورد استفاده قرار داده را در خروجی می آورد. همچنین این فرمان یک پیام هشدار به علاوهٔ exit status را در خروجی نشان می دهد. در صورتیکه exit status در پایان خروجی عددی غیر از صفر را نشان دهد برنامه با خطا مواجه شده است.

    بعد از اجرای هر برنامه، دستور زیر را برای بررسی صحتِ اجرای دستور در ترمینال صادر کنید (این کار مقدار exit status را به شما نشان می دهد) :

    کد PHP:
    echo $? 
    زمانیکه خروجی عدد 0 را نشان دهد این بدان معنیست که برنامه به درستی اجرا شده ولی خروجی غیر صفر نشانگر عدم اجرای صحیح فرمان می باشد.

    کد PHP:
    star@galaxy:~$ time date

    Mon Mar 5 20
    :03:39 IRST 2012

    real 0m0.002s

    user 0m0.000s

    sys 0m0.000s

    star
    @galaxy:~$ time datz

    datz
    command not found

    real 0m0.159s

    user 0m0.124s

    sys 0m0.036s 
    ترکیب زیر فرم کلی این دستور را نشان می دهد :

    کد PHP:
    /usr/bin/time [optionsprogram [arguments
    فرمان time گزینه هایی را در اختیار کاربر قرار می دهد که در ادامه شما را با برخی از آن ها آشنا می کنیم :

    ‎-v , –verbose : این گزینه زمانی استفاده می شود که خروجی با جزئیات بیشتری مورد نیاز است. به مثال پیش رو توجه کنید :

    کد PHP:
    star@galaxy:~$ /usr/bin/time -v date

    Mon Mar 5 20
    :18:41 IRST 2012

    Command being timed
    “date”

    User time 
    (seconds): 0.00

    System time 
    (seconds): 0.00

    Percent of CPU this job got
    0%

    Elapsed (wall clocktime (h:mm:ss or m:ss): 0:00.00

    Average shared text size 
    (kbytes): 0

    Average unshared data size 
    (kbytes): 0

    Average stack size 
    (kbytes): 0

    Average total size 
    (kbytes): 0

    Maximum resident set size 
    (kbytes): 2768

    Average resident set size 
    (kbytes): 0

    Major 
    (requiring I/Opage faults0

    Minor 
    (reclaiming a framepage faults228

    Voluntary context switches
    1

    Involuntary context switches
    1

    Swaps
    0

    File system inputs
    0

    File system outputs
    0

    Socket messages sent
    0

    Socket messages received
    0

    Signals delivered
    0

    Page size 
    (bytes): 4096

    Exit status
    ‎ –quite: از نمایش exit status در خروجی جلوگیری به عمل می آورد.

    ‎ ‎-f , ‎–format: کاربر با استفاده از این گزینه می تواند خروجی را بصورتی که می خواهد کنترل (قالب بندی) کند.

    ‎-p , –portability : این گزینه قالب خروجی را طبق استاندارد POSIX ارائه می دهد.

    Real %e

    Use %U

    Sys %S

    ‎:-o FILE, –output=FILE این گزینه به کاربر این امکان را می دهد که خروجی time را به یک فایل هدایت و در آن ذخیره کند. همچنین به time اجازه بازنویسی بر روی فایل FILE را می دهد.

    ‎: -a ، –append این گزینه به time این اجازه را می دهد که اطلاعات را به فایل FILE اضافه و از بازنویسی اطلاعات اجتناب کند.

    زمانیکه فرمان time اجرا می شود ، خروجی چیزی شبیه به این مثال است :

    کد PHP:
    star@galaxy:~$ /usr/bin/time ls

    Desktop 
    Public

    Documents spinner

    0.00user 0.00system 0
    :00.00elapsed 0%CPU (0avgtext+0avgdata 3344maxresident)k

    0inputs
    +0outputs (0major+269minor)pagefaults 0swaps 
    همانطور که در بالا نشان داده شده است، دو خط آخرِ خروجی منابعی که توسط برنامه یا دستورِ مورد نظر استفاده شده است را نمایش می دهد.

    خروجی پیش فرض این فرمان بدون در نظر گرفتن هیچ گزینهٔ اضافی به سبک زیر خواهد بود :

    کد PHP:
    Uuser  %Ssystem  %Eelapsed  %PCPU  (%Xtext+%Ddata  %MmaxK

    %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps 
    معمولا گزینه ها به کاربر اجازه تصمیم گیری در مورد نحوه گرفتنِ خروجی از برنامه به شیوه ای که مد نظر دارد را می دهد. خروجی معمولا شامل منابع خاصی است که در قالب text ساده نمایش داده می شود.

    علامت درصد (‘%’) کاراکتر بعدی را به عنوان منبعِ موردِ نظر تفسیر می کند. علامت بک اسلش (‘\’) به چاپ یک کارکتر بعد از خروجی ترجمه می شود. علامت ‘‎\t’ خروجی را پس از یک tab نشان می دهد. همچنین علامت ‘‎\n’ خروجی را در خط جدیدی چاپ و علامت ‘\\’ یک بک اسلش در خروجی چاپ می کند.

    در اینجا به بخشی از منابعی که ممکن است یک برنامه استفاده کند اشاره شده است :

    c- نام و آرگومانت کامند time

    E- زمان واقعی سپری شده توسط پروسس به ثانیه:دقیقه:ساعت.

    I- تعداد فایل سیستم هایی که توسط پروسس وارد می شوند.

    M- بیشینهٔ اندازه پروسس های موجود در lifetime به کیلوبایت.

    P- درصد cpuیی که برنامه مورد استفاده قرار داده است. لازم به ذکر است این میزان تنها زمان کاربر + سیستم که توسط زمان اجرایی نهایی بصورت جدا از هم هستند را نشان می دهد. همچنین علامت درصد را نیز چاپ می کند.

    W- مقدار زمان هایی که پروسس از swap استفاده کرده است.

    Z- اندازه page سیستم به بایت. این یک مقدار ثابت سیستمی است، اما بین سیستم های مختلف متفاوت است.

    e- زمان واقعی سپری شده توسط پروسس به ثانیه.

    K- تعداد سیگنال هایی که به پروسس انتقال داده شده است.

    x- نتیجه exit status فرمان یا برنامه.

    و تعداد زیاد دیگری از منابع سیستمی که توسط time می توان از آنها مطلع شد.

    نکته ای که در هنگام استفاده از دستور time وجود دارد به کار گرفتن مسیر کامل آن به جای استفاده از فرمان time است. اگر بخواهیم از گزینه ها استفاده کنیم بدون ذکر کامل مسیر فرمان، خطایی مانند خطای زیر را خواهید دید :

    کد PHP:
    time -f “\t%U user,\t%S system,\t%x status” date

    -fcommand not found

    real 0m0.255s

    user 0m0.230s

    sys 0m0.030 
    همانگونه که در مثال بالا نشان داده شده است، فرمان time زمانیکه بدون مسیر کامل (‎/usr/bin/time) استفاده می شود با افزودن گزینهٔ ‎–f در خروجی خود خطا می دهد. همچنین فرمت خروجی نه آن سبکی که ما به عنوان قالب مشخص کرده بودیم را به نمایش می گذازد و نه فرم پیش فرض را به خود گرفته است. زمانیکه فرمان time بدون مسیر کامل (‎/usr/bin/time) اجرا می شود، در حقیقت دستور built-in هست که bash shell آن را اجرا می کند.

    برای کسب اطلاعات بیشتر در رابطه با این دستور می تواند راهنمای آن را با اجرای دستور man time مطالعه نمائید. همچنین با صدور help time اطلاعاتی که دستور built-in بش در رابطه با این فرمان دارد را می توان مشاهده کرد.

    کد PHP:
    star@galaxy:~$ type /usr/bin/time

    /usr/bin/time is /usr/bin/time

    star
    @galaxy:~$ type time

    time is a shell keyword 
    همانگونه که اشاره شد نوع فرمان time در هر دو شکلی که بیان شده متفاوت است. در اولی به مسیر و در دومی به built-in بودن این فرمان اشاره شده است.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 01:05 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X