SCONS-TIME(1) SCons 4.11.1 SCONS-TIME(1)

scons-time - تولید و نمایش اطلاعات زمان‌بندی SCons

scons-time subcommand [options...] [arguments...]

scons-time run [-hnqv] [-f FILE] [--number=NUMBER] [--outdir=OUTDIR] [-p STRING] [--python=PYTHON] [-s DIR] [--scons=SCONS] [--svn=URL] [ARGUMENTS]

scons-time func [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [--func=NAME] [-p STRING] [-t NUMBER] [--title= TITLE] [ARGUMENTS]

scons-time mem [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [--stage=STAGE] [-t NUMBER] [--title=TITLE] [ARGUMENTS]

scons-time obj [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [--stage=STAGE] [-t NUMBER] [--title=TITLE] [ARGUMENTS]

scons-time time [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [-t NUMBER] [--title=TITLE] [--which=WHICH] [ARGUMENTS]

scons-time help SUBCOMMAND [...]

دستور scons-time یک پیکربندی SCons را در مجموعه‌ای استاندارد از زمان‌بندی‌های پروفایل‌شده اجرا می‌کند و می‌تواند اطلاعات حاصل از پروفایل‌ها و فایل‌های لاگ این زمان‌بندی‌ها را استخراج کرده و به صورت نمودار نمایش دهد. عملیاتی که باید توسط اسکریپت scons-time انجام شود، با یک زیردستور مشخص می‌شود که نخستین آرگومان در خط فرمان است. برای اطلاعات بیشتر درباره نحوه عملکرد هر زیردستور، بخش SUBCOMMANDS در ادامه را ببینید.

روش پایه برای استفاده از scons-time این است که زیردستور scons-time run (احتمالاً چندین بار) برای تولید خروجی پروفایل و فایل لاگ اجرا شود، و سپس از یکی دیگر از زیردستورها برای نمایش نتایج ثبت‌شده در پروفایل‌ها و فایل‌های لاگ برای نوع خاصی از اطلاعات استفاده گردد: زمان‌بندی توابع (زیردستور scons-time func)، کل حافظه مصرفی (زیردستور scons-time mem)، تعداد اشیاء (زیردستور scons-time obj) و زمان کل اجرا (زیردستور scons-time time). گزینه‌هایی برای قرار دادن و یافتن پروفایل‌ها و فایل‌های لاگ در دایرکتوری‌های جداگانه، تولید خروجی در قالبی مناسب جهت رسم نمودار با برنامه gnuplot(1) و مواردی از این دست وجود دارند.

دو روش اساسی برای استفاده از زیردستور scons-time run جهت جمع‌آوری آمار زمان‌بندی برای یک پیکربندی در نظر گرفته شده است. یکی استفاده از گزینه --svn= برای سنجش یک پیکربندی در برابر فهرستی از بازبینی‌ها (revisions) از مخزن Subversion مربوط به SCons است. این کار یک پروفایل و فایل لاگ زمان‌بندی برای هر بازبینی فهرست‌شده با گزینه --number= تولید می‌کند، و می‌تواند برای مشاهده تأثیر تغییرات ثبت‌شده در پایه‌کد SCons بر روی یک پیکربندی خاص در طول زمان مورد استفاده قرار گیرد.

روش دیگر، پروفایل کردن تغییرات تدریجی روی یک پایه‌کد محلی SCons در طول چرخه توسعه است؛ یعنی بررسی تأثیر عملکردی تغییراتی که در درخت محلی ایجاد می‌کنید. در این حالت، شما زیردستور scons-time run را بدون گزینه --svn= اجرا می‌کنید؛ در این صورت، این دستور صرفاً دایرکتوری خروجی فایل‌های پروفایل/لاگ (به‌طور پیش‌فرض دایرکتوری جاری) را بررسی کرده و به‌طور خودکار شماره اجرای بعدی را برای پروفایل و فایل لاگ خروجی تعیین می‌کند. با استفاده از این روش، چرخه توسعه چیزی شبیه به این خواهد بود: اعمال تغییر در SCons؛ اجرای scons-time run برای پروفایل کردن آن در برابر یک پیکربندی خاص؛ اعمال تغییری دیگر در SCons؛ اجرای دوباره scons-time run برای پروفایل کردن آن؛ و غیره..SH "گزینه‌ها (OPTIONS)"

دستور scons-time تنها از چند گزینهٔ سراسری پشتیبانی می‌کند:

-h, --help

متن راهنمای سراسری را نمایش داده و خارج می‌شود؛ دقیقاً مشابه زیرفرمان scons-time help عمل می‌کند.

-V, --version

نسخهٔ scons-time را نمایش داده و خارج می‌شود.

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

دستور scons-time از زیرفرمان‌های مجزای زیر پشتیبانی می‌کند.

scons-time func [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [--func=NAME] [-p STRING] [-t NUMBER] [--title= TITLE] [ARGUMENTS]

زیرفرمان scons-time func اطلاعات زمان‌بندی را برای یک تابع خاص پایتون در SCons نمایش می‌دهد. به‌طور پیش‌فرض، اطلاعات تابع _main() را استخراج می‌کند که شامل زمان‌بندی پروفایلر پایتون برای کل SCons است.

زیرفرمان scons-time func اطلاعات زمان‌بندی تابع را از تمام آرگومان‌های فایل مشخص‌شده، که باید فایل‌های خروجی پروفایلر پایتون باشند، استخراج می‌کند. (به‌طور معمول، این‌ها فایل‌های *.prof هستند که توسط زیرفرمان scons-time run تولید شده‌اند، اما در واقع می‌توانند با هر بار اجرای پروفایلر پایتون نیز تولید شوند.) تمام آرگومان‌های نام فایل برای یافتن فایل‌های روی دیسک، الگوگشایی (glob) می‌شوند.

اگر هیچ آرگومانی مشخص نشود، اطلاعات زمان‌بندی تابع از تمامی فایل‌های *.prof یا زیرمجموعه‌ای از آن‌ها با پیشوند مشخص‌شده توسط گزینهٔ -p استخراج خواهد شد.

گزینه‌ها عبارت‌اند از:

-C DIRECTORY, --chdir=DIRECTORY

پیش از جستجو برای فایل‌های مشخص‌شده (یا فایل‌هایی که با الگوهای مشخص‌شده مطابقت دارند)، به DIRECTORY مشخص‌شده تغییر مسیر می‌دهد.

-f FILE, --file=FILE

اطلاعات پیکربندی را از FILE مشخص‌شده می‌خواند.

-fmt=FORMAT, --format=FORMAT

خروجی را در FORMAT مشخص‌شده گزارش می‌کند. قالب‌هایی که در حال حاضر پشتیبانی می‌شوند شامل ascii (پیش‌فرض) و gnuplot هستند.

--func=NAME

زمان‌بندی‌ها را برای تابع مشخص‌شدهٔ NAME استخراج می‌کند. حالت پیش‌فرض، گزارش زمان‌بندی‌های تجمعی برای تابع _main() است که کل اجرای SCons را در بر می‌گیرد.

-h, --help

متن راهنما را برای زیرفرمان scons-time func نمایش می‌دهد.

-p STRING, --prefix=STRING

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

-t NUMBER, --tail=NUMBER

تنها زمان‌بندی توابع را از آخرین NUMBER فایل استخراج می‌کند.

scons-time help SUBCOMMAND [...] زیرفرمان help متن راهنما را برای هر زیرفرمان دیگری که به عنوان آرگومان‌های بعدی در خط فرمان فهرست شده باشد، چاپ می‌کند.

scons-time mem [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [--stage=STAGE] [-t NUMBER] [--title=TITLE] [ARGUMENTS]

زیرفرمان scons-time mem میزان حافظهٔ مصرفی توسط SCons را نمایش می‌دهد.

زیرفرمان scons-time mem اطلاعات مصرف حافظه را از تمامی آرگومان‌های فایل مشخص‌شده استخراج می‌کند؛ این فایل‌ها باید فایل‌هایی حاوی خروجی حاصل از اجرای SCons با گزینهٔ --debug=memory باشند. (به طور معمول، این‌ها همان فایل‌های *.log تولیدشده توسط زیرفرمان scons-time run هستند.) تمامی آرگومان‌های نام فایل به منظور تطبیق با فایل‌های روی دیسک گسترش (glob) داده می‌شوند.

اگر هیچ آرگومانی مشخص نشود، اطلاعات حافظه از تمام فایل‌های *.log یا زیرمجموعه‌ای از آن‌ها با یک پیشوند مشخص‌شده توسط گزینهٔ -p استخراج خواهد شد.

-C DIR, --chdir=DIR

قبل از جستجوی فایل‌های مشخص‌شده (یا فایل‌هایی که با الگوهای مشخص‌شده مطابقت دارند)، به DIRECTORY تعیین‌شده تغییر مسیر می‌دهد.

-f FILE, --file=FILE

اطلاعات پیکربندی را از FILE مشخص‌شده می‌خواند.

-fmt=FORMAT, --format=FORMAT

خروجی را در FORMAT مشخص‌شده گزارش می‌دهد. قالب‌های پشتیبانی‌شده در حال حاضر عبارتند از ascii (پیش‌فرض) و gnuplot.

-h, --help

متن راهنما را برای زیرفرمان scons-time mem نمایش می‌دهد.

-p STRING, --prefix=STRING

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

--stage=STAGE

حافظهٔ مصرف‌شده در انتهای STAGE تعیین‌شده را چاپ می‌کند: pre-read (قبل از خوانده شدن فایل‌های SConscript)، post-read , (بعد از خوانده شدن فایل‌های SConscript)، pre-build (قبل از ساخته شدن هر هدفی) یا post-build (بعد از ساخته شدن هر هدفی). اگر هیچ گزینهٔ --stage مشخص نشده باشد، رفتار پیش‌فرض post-build است که مقدار نهایی حافظهٔ مصرف‌شده توسط SCons در طول هر اجرا را گزارش می‌کند.

-t NUMBER, --tail=NUMBER

آمار حافظه را فقط از آخرین NUMBER فایل گزارش می‌دهد.

scons-time obj [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [--stage=STAGE] [-t NUMBER] [--title=TITLE] [ARGUMENTS]

زیرفرمان scons-time obj تعداد اشیای ایجادشده از یک نوع مشخص توسط SCons را نمایش می‌دهد.

زیرفرمان scons-time obj شمارش اشیاء را از تمام فایل‌های مشخص‌شده در آرگومان‌ها استخراج می‌کند؛ این فایل‌ها باید حاوی خروجی حاصل از اجرای SCons با گزینهٔ --debug=count باشند. (به‌طور معمول، این‌ها فایل‌های *.log تولیدشده توسط زیرفرمان scons-time run هستند.) تمام آرگومان‌های نام فایل با فایل‌های موجود روی دیسک تطبیق داده می‌شوند (globbed).

اگر هیچ آرگومانی مشخص نشود، شمارش اشیاء از تمام فایل‌های *.log یا زیرمجموعه‌ای از آن‌ها با پیشوند مشخص‌شده توسط گزینهٔ -p استخراج خواهد شد.

-C DIR, --chdir=DIR

قبل از جستجوی فایل‌های مشخص‌شده (یا فایل‌های منطبق با الگوهای مشخص‌شده)، به DIRECTORY مشخص‌شده تغییر مسیر می‌دهد.

-f FILE, --file=FILE

اطلاعات پیکربندی را از FILE مشخص‌شده می‌خواند.

-fmt=FORMAT, --format=FORMAT

خروجی را در FORMAT مشخص‌شده گزارش می‌دهد. قالب‌هایی که در حال حاضر پشتیبانی می‌شوند شامل ascii (پیش‌فرض) و gnuplot هستند.

-h, --help

متن راهنما را برای زیرفرمان scons-time obj نمایش می‌دهد.

-p STRING, --prefix=STRING

رشتهٔ پیشوند را برای فایل‌های لاگی که شمارش اشیاء باید از آن‌ها استخراج شود مشخص می‌کند. در صورتی که هیچ آرگومانی در خط فرمان مشخص نشده باشد، این رشته برای جستجوی فایل‌های لاگ استفاده خواهد شد.

--stage=STAGE

تعداد اشیاء را در پایان STAGE مشخص‌شده چاپ می‌کند: pre-read (پیش از خوانده شدن فایل‌های SConscript)، post-read (پس از خوانده شدن فایل‌های SConscript)، pre-build (پیش از ساخت هر هدفی) یا post-build (پس از ساخت همهٔ اهداف). اگر هیچ گزینهٔ --stage مشخص نشود، رفتار پیش‌فرض post-build است که تعداد نهایی اشیاء را در طول هر اجرا گزارش می‌دهد.

-t NUMBER, --tail=NUMBER

تنها شمارش اشیاء را از آخرین NUMBER فایل گزارش می‌دهد.

scons-time run [-hnqv] [-f FILE] [--number=NUMBER] [--outdir=OUTDIR] [-p STRING] [--python=PYTHON] [-s DIR] [--scons=SCONS] [--svn=URL] [ARGUMENTS] زیرفرمان scons-time run زیرفرمان پایه‌ای برای ارزیابی کارایی (profiling) یک پیکربندی خاص در برابر نسخه‌ای از SCons است.

پیکربندی مورد آزمایش به‌صورت فهرستی از فایل‌ها یا دایرکتوری‌هایی مشخص می‌شود که در یک دایرکتوری موقت که SCons در آن فراخوانی خواهد شد، باز یا کپی می‌شوند. زیرفرمان scons-time run پسوندهای فایلی مانند .tar، .tar.gz، .tgz و .zip را درک کرده و محتویات آن‌ها را در یک دایرکتوری موقت باز می‌کند. اگر بیش از یک آرگومان مشخص شده باشد، هر کدام «روی» بایگانی‌ها یا دایرکتوری‌های قبلی در دایرکتوری موقت باز یا کپی می‌شوند، بنابراین انتظار می‌رود که چندین بایگانی مشخص‌شده، ساختار دایرکتوری یکسانی داشته باشند.

به‌محض اینکه آرگومان‌های فایل یا دایرکتوری در دایرکتوری موقت باز یا کپی شدند، زیرفرمان scons-time run نسخهٔ درخواستی SCons را سه بار روی این پیکربندی اجرا می‌کند:

راه‌اندازی (Startup)

دستور SCons با گزینهٔ --help اجرا می‌شود تا تنها فایل‌های SConscript خوانده شوند و سپس متن راهنمای پیش‌فرض چاپ شود. این کار صرفاً «سربار» مشهودِ راه‌اندازی SCons و پردازش فایل‌های SConscript را ارزیابی و پروفایل می‌کند.

ساخت کامل (Full build)

دستور SCons برای ساخت هر آنچه در پیکربندی مشخص شده اجرا می‌شود. هدف‌های خاصی که باید از طریق خط فرمان ارسال شوند، می‌توانند توسط کلیدواژهٔ targets در یک فایل پیکربندی تعیین شوند؛ برای جزئیات به بخش‌های زیر مراجعه کنید.

ساخت مجدد (Rebuild)

دستور SCons مجدداً روی همان دایرکتوری تازه ساخته‌شده اجرا می‌شود. اگر وابستگی‌ها در پیکربندی SCons درست باشند، این باید یک ساخت مجدد به‌روز و «بدون انجام کار» (do nothing) باشد.

هر فراخوانی، فایل گزارش خروجی و یک پروفایل را ثبت می‌کند.

زیرفرمان scons-time run از گزینه‌های زیر پشتیبانی می‌کند:

-f FILE, --file=FILE

اطلاعات پیکربندی را از FILE مشخص‌شده می‌خواند. این کار اغلب روشی راحت‌تر نسبت به مشخص کردن پارامترها در خط فرمان، برای تعیین و گردآوری پارامترهای مرتبط با یک پیکربندی زمان‌سنجی خاص فراهم می‌کند. برای اطلاعات بیشتر دربارهٔ پارامترهای فایل پیکربندی، بخش CONFIGURATION FILE را در ادامه ببینید.

-h, --help

متن راهنما را برای زیرفرمان scons-time run نمایش می‌دهد.

-n, --no-exec

فرمان‌ها را اجرا نمی‌کند، بلکه صرفاً معادل‌های خط فرمانی آنچه که قرار بود اجرا شود را چاپ می‌کند. توجه داشته باشید که اسکریپت scons-time در صورت امکان، برای قابلیت حمل، اقدامات خود را مستقیماً در Python اجرا می‌کند. دستورهای نمایش‌داده‌شده، معادل‌های یونیکسیِ کاری هستند که این اسکریپت انجام می‌دهد.

--number=NUMBER

شمارهٔ اجرا را مشخص می‌کند که در نام فایل‌های گزارش خروجی و پروفایل‌های تولیدشده توسط این اجرا استفاده می‌شود.

هنگامی که همراه با گزینهٔ --svn=URL استفاده شود، NUMBER یک یا چند شمارهٔ بازنگری (revision) در Subversion را که با کاما از هم جدا شده‌اند مشخص می‌کند که به‌طور خودکار از مخزن Subversion در URL مشخص‌شده دریافت خواهند شد. بازه‌ای از شماره‌های بازنگری یا دلتا را می‌توان با جدا کردن دو عدد با خط تیره (-) مشخص کرد.

مثال:

% scons-time run --svn=http://scons.tigris.org/svn/trunk --num=1247,1249-1252 .

-p STRING, --prefix=STRING

رشتهٔ پیشوندی را مشخص می‌کند که برای تمام فایل‌های گزارش و پروفایل‌های تولیدشده توسط این اجرا استفاده خواهد شد. حالت پیش‌فرض از اولین آرگومان مشخص‌شده گرفته می‌شود: اگر آرگومان اول یک دایرکتوری باشد، پیشوند پیش‌فرض نام آن دایرکتوری است؛ اگر آرگومان اول یک بایگانی (فایل tar یا zip) باشد، پیشوند پیش‌فرض نام پایهٔ بایگانی است، یعنی آنچه که پس از حذف پسوند بایگانی (.tgz، .tar.gz یا .zip) باقی می‌ماند.

--python=PYTHON

مسیری به فایل اجرایی Python را مشخص می‌کند که برای اجراهای زمان‌سنجی استفاده خواهد شد. حالت پیش‌فرض استفاده از همان فایل اجرایی پایتونی است که خود دستور scons-time را اجرا می‌کند.

-q, --quiet

از نمایش خطوط فرمان در حال اجرا جلوگیری می‌کند.

-s DIR, --subdir=DIR

نام دایرکتوری یا زیردایرکتوری‌ای را که دستورها باید از داخل آن اجرا شوند مشخص می‌کند. مقدار پیش‌فرض XXX است.

--scons=SCONS

مسیری را به اسکریپت SCons مشخص می‌کند که برای اجراهای زمان‌سنجی استفاده خواهد شد. مقدار پیش‌فرض XXX است.

--svn=URL, --subversion=URL

URL مخزن Subversion را که نسخه(های) مورد آزمایش scons از آن استخراج خواهد شد مشخص می‌کند. هنگامی که --svn تعیین شده باشد، گزینهٔ --number=NUMBER شماره‌های بازنگری که باید آزمایش شوند را تعیین می‌کند. خروجی هر فراخوانی در نام فایل‌هایی قرار خواهد گرفت که مطابق با شماره‌های بازنگری Subversion هستند. اگر گزینهٔ --number= مشخص نشده باشد، رفتار پیش‌فرض اندازه‌گیری زمان بازنگری HEAD در URL مشخص‌شده است.

-v, --verbose

خروجی دستورهای جداگانه را روی صفحه نمایش می‌دهد (علاوه بر ذخیره کردن خروجی در فایل‌های گزارش).

scons-time time [-h] [--chdir=DIR] [-f FILE] [--fmt=FORMAT] [-p STRING] [-t NUMBER] [--title=TITLE] [--which=WHICH] [ARGUMENTS]

زیرفرمان scons-time time زمان‌های اجرای SCons را همان‌گونه که توسط گزینهٔ scons --debug=time گزارش شده‌اند، نمایش می‌دهد.

زیرفرمان scons-time time زمان‌بندی‌های SCons را از تمام آرگومان‌های فایل مشخص‌شده استخراج می‌کند؛ این فایل‌ها باید فایل‌هایی حاوی خروجی حاصل از اجرای SCons همراه با گزینهٔ --debug=time باشند. (به طور معمول، این‌ها فایل‌های *.log تولید شده توسط زیرفرمان scons-time run هستند.) تمام آرگومان‌های نام فایل برای تطبیق با فایل‌های روی دیسک بسط (glob) داده می‌شوند.

اگر هیچ آرگومانی مشخص نشود، زمان‌بندی‌های اجرا از تمام فایل‌های *.log یا زیرمجموعه‌ای از آن‌ها با پیشوند مشخص‌شده توسط گزینهٔ -p استخراج خواهد شد.

-C DIR, --chdir=DIR

پیش از جستجو برای فایل‌های مشخص‌شده (یا فایل‌هایی که با الگوهای مشخص‌شده مطابقت دارند)، به DIRECTORY مشخص‌شده تغییر مسیر می‌دهد.

-f FILE, --file=FILE

اطلاعات پیکربندی را از FILE مشخص‌شده می‌خواند.

-fmt=FORMAT, --format=FORMAT

خروجی را در FORMAT مشخص‌شده گزارش می‌دهد. قالب‌هایی که در حال حاضر پشتیبانی می‌شوند عبارتند از ascii (پیش‌فرض) و gnuplot.

-h, --help

متن راهنما را برای زیرفرمان scons-time time نمایش می‌دهد.

-p STRING, --prefix=STRING

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

-t NUMBER, --tail=NUMBER

تنها تعداد اشیاء را از آخرین NUMBER فایل گزارش می‌دهد.

--which=WHICH

زمان اجرا را برای مقدار مشخص‌شده در WHICH چاپ می‌کند: total (کل زمان اجرا)، SConscripts (کل زمان اجرای خود فایل‌های SConscript)، SCons (زمان اجرای درون خود کد SCons) یا commands (زمان اجرای دستورها و سایر کنش‌های استفاده‌شده برای ساخت هدف‌ها). اگر هیچ گزینهٔ --which مشخص نشود، رفتار پیش‌فرض total است که کل زمان اجرا را برای هر نوبت اجرا گزارش می‌دهد.

زیردستورهای مختلف scons-time می‌توانند در صورت دریافت گزینه‌های -f یا --file، اطلاعات را از یک فایل پیکربندی مشخص بخوانند. فایل پیکربندی در واقع به‌صورت یک اسکریپت Python اجرا می‌شود. مقداردهی متغیرهای Python در فایل پیکربندی، رفتار اسکریپت scons-time را بسیار راحت‌تر از تعیین گزینه‌ها یا آرگومان‌های خط فرمان برای هر اجرا کنترل می‌کند، و روشی سودمند برای یکپارچه‌سازی و ذخیره اطلاعات لازم جهت تولید (و گزارش) اجراهای زمان‌سنجی پایدار برای یک پیکربندی مشخص فراهم می‌آورد.

archive_list

فهرستی از بایگانی‌ها (فایل‌ها یا دایرکتوری‌ها) که به دایرکتوری موقتی که SCons در آن فراخوانی خواهد شد کپی می‌شوند. محتوای فایل‌های .tar، .tar.gz، .tgz و .zip در دایرکتوری موقت استخراج خواهد شد. ساختارهای درختی دایرکتوری و فایل‌ها به‌همان شکل که هستند کپی خواهند شد.

initial_commands

فهرستی از دستورها که پیش از اجراهای زمان‌سنجی‌شدهٔ واقعی scons اجرا خواهند شد. از این متغیر می‌توان برای دستورهایی استفاده کرد که برای آماده‌سازی درخت منبع لازم هستند؛ برای نمونه، ایجاد یک فایل پیکربندی که نباید بخشی از اجرای زمان‌سنجی‌شده باشد.

key_location

محل قرارگیری کلید (راهنما) روی اطلاعات نموداری Gnuplot که با گزینهٔ --format=gnuplot تولید می‌شود. مقدار پیش‌فرض bottom left است.

prefix

پیشوند نام فایل که هنگام اجرا یا استخراج زمان‌سنجی برای این پیکربندی استفاده می‌شود.

python

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

scons

مسیر نام اسکریپت SCons که هنگام اجرا یا استخراج اطلاعات برای این پیکربندی استفاده می‌شود. مقدار پیش‌فرض به‌سادگی scons است.

scons_flags

پرچم‌های scons که هنگام اجرای SCons برای جمع‌آوری اطلاعات زمان‌سنجی استفاده می‌شوند. مقدار پیش‌فرض --debug=count --debug=memory --debug=time --debug=memoizer است.

scons_lib_dir, scons_wrapper, startup_targets, subdir

زیردایرکتوری از پروژه که اسکریپت scons-time باید پیش از اجرای دستورهای SCons برای زمان‌سنجی وارد آن شود.

subversion_url

نشانی Subversion URL از

svn

فایل اجرایی Subversion که برای واکشی (checkout) نگارش‌های SCons مورد زمان‌سنجی استفاده می‌شود. پیش‌فرض صرفاً svn است.

svn_co_flag, tar, targets

رشته‌ای شامل هدف‌هایی که باید به خط فرمان هر اجرای زمان‌سنجی‌شدهٔ scons اضافه شوند. از این می‌توان برای محدود کردن موارد تحت زمان‌سنجی به زیرمجموعه‌ای از ساخت کامل پیکربندی استفاده کرد.

targets0, targets1, targets2, title, unzip, verbose, vertical_bars

در اینجا نمونه‌ای از فایل پیکربندی scons-time برای یک پروژه فرضی آورده شده است:

# The project doesn't use SCons natively (yet), so we're
# timing a separate set of SConscript files that we lay
# on top of the vanilla unpacked project tarball.
arguments = ['project-1.2.tgz', 'project-SConscripts.tar']
# The subdirectory name contains the project version number,
# so tell scons-time to chdir there before building.
subdir = 'project-1.2'
# Set the prefix, so output log files and profiles are named:
#     project-000-[012].{log,prof}
#     project-001-[012].{log,prof}
# etc.
prefix = 'project'
# The SConscript files being tested don't do any SConf
# configuration, so run their normal ./configure script
# before we invoke SCons.
initial_commands = [
    './configure',
]
# Only time building the bin/project executable.
targets = 'bin/project'
# Time against SCons revisions of the branches/core branch
subversion_url = 'http://scons.tigris.org/svn/scons/branches/core'

اسکریپت scons-time از متغیرهای محیطی زیر استفاده می‌کند:

PRESERVE

اگر این مقدار تنظیم شده باشد، اسکریپت scons-time دایرکتوری یا دایرکتوری‌های موقتی را که در آن‌ها پیکربندی مشخص‌شده را می‌سازد یا نسخه خاصی از SCons را دانلود می‌کند، حذف نخواهد کرد.

gnuplot(1), scons(1)

Steven Knight <knight at baldmt dot com>

08/26/2026 SCons 4.11.1