| PM-GAWK(1) | دستورات کاربر | PM-GAWK(1) |
نام (NAME)
pm-gawk - حافظه پایدار برای دادهها و توابع gawk
خلاصه دستور (SYNOPSIS)
truncate -s size heap.pma export GAWK_PERSIST_FILE=heap.pma gawk ... truncate -s size heap.pma GAWK_PERSIST_FILE=heap.pma gawk ... truncate -s size heap.pma alias pm='GAWK_PERSIST_FILE=heap.pma' pm gawk ... # مختصر unset GAWK_PERSIST_FILE # غیرفعال کردن پایداری export GAWK_PERSIST_FILE=other_heap.pma # تغییر فایل هیپ rm heap.pma # حذف فایل هیپ
توضیحات (DESCRIPTION)
دستور gawk نسخه 5.2 و بالاتر از قابلیت حافظه پایدار پشتیبانی میکند که میتواند متغیرها و توابع تعریفشده در اسکریپت را برای استفادههای بعدی در یک فایل ذخیره کند. این ویژگی که pm-gawk نامیده میشود، در GAWK: Effective AWK Programming و در Persistent Memory gawk User Manual شرح داده شده است.
ویژگی pm-gawk با فرستادن نام یک فایل هیپ که در ابتدا خالی است (تمام بایتهای آن صفر است) از طریق متغیر محیطی GAWK_PERSIST_FILE به gawk فعال میشود. pm-gawk متغیرها و توابع تعریفشده توسط اسکریپت را برای استفاده در اجراهای بعدی gawk در فایل هیپ نگهداری میکند.
ویژگی pm-gawk حداقل دو مزیت در مقایسه با افزونه موجود rwarray دارد: امکان دسترسی در زمان ثابت (“زمان O(1)”) به عناصر مجزای آرایههای انجمنی پایدار را فراهم میسازد، و علاوه بر متغیرها میتواند توابع تعریفشده توسط اسکریپت را نیز ذخیره کند.
نحوه کار (HOW IT WORKS)
نمایش متغیرهای پایدار:
$ truncate -s 1G heap.pma # ایجاد فایل هیپ $ export GAWK_PERSIST_FILE=heap.pma # متغیر محیطی عمومی $ gawk 'BEGIN { print ++i }' 1 $ gawk 'BEGIN { print ++i }' 2 $ gawk 'BEGIN { print ++i }' 3
برای فرستادن متغیر محیطی بر اساس هر دستور به طور مجزا:
$ unset GAWK_PERSIST_FILE $ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }' 4 $ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }' 5 $ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }' 6
برای کاهش شلوغی بصریِ فرستادن متغیر محیطی در هر دستور:
$ alias pm='GAWK_PERSIST_FILE=heap.pma' $ pm gawk 'BEGIN { print ++i }' 7 $ pm gawk 'BEGIN { print ++i }' 8
برای خودداری از فعالسازی پایداری:
$ unset GAWK_PERSIST_FILE $ gawk 'BEGIN { print ++i }' 1 $ gawk 'BEGIN { print ++i }' 1
برای فراموش کردن و پاک کردن همیشگی محتوای فایل هیپ:
$ rm heap.pma
متغیرهای محیطی (ENVIRONMENT VARIABLES)
متغیر محیطی GAWK_PERSIST_FILE حاوی نام یک فایل هیپ است که متغیرها و توابع تعریفشده توسط اسکریپت در آن ذخیره میشوند. اگر این متغیر محیطی برای gawk قابل مشاهده نباشد، قابلیت پایداری فعال نمیشود و gawk به روش سنتی و پیشین خود رفتار میکند.
اطلاعات نسخه (VERSION INFORMATION)
حافظه پایدار gawk نخستین بار در gawk نسخه 5.2 ارائه شد.
نویسندگان (AUTHORS)
آرنولد رابینز (Arnold Robbins)، نگهدارنده gawk، ویژگی pm-gawk را با استفاده از یک تخصیصدهنده حافظه پایدار (pma) که توسط ترنس کلی (Terence Kelly) ارائه شده بود، پیادهسازی کرد. یک پیشنمونه اثبات مفهوم اولیه از gawk پایدار پیشتر توسط Haris Volos، Zi Fan Tan و Jianan Li با استفاده از انشعابی از کدهای منبع رسمی gawk توسعه یافته بود.
محدودیتها (LIMITATIONS)
شناخته شده است که سیستمفایل CIFS گنو/لینوکس موجب بروز مشکلاتی برای تخصیصدهنده حافظه پایدار میشود. از فایلی روی چنین سیستمفایلی همراه با pm-gawk استفاده نکنید.
در صورتی که نسخه فعلی gawk با نسخهای که نخستین بار با یک فایل ذخیرهسازی پشتیبان مشخص استفاده شده بود مطابقت نداشته باشد، pm-gawk یک پیام هشدار تولید میکند.
گزارش باگها (BUGS)
دستورالعملهای موجود در GAWK: Effective AWK Programming و Persistent Memory gawk User Manual را دنبال کنید. برای اشکالات احتمالی مربوط به پایداری (در مقابل سایر باگهای gawk که به پایداری مربوط نیستند)، لطفاً یک رایانامه به یک یا چند نشانی زیر برای Terence Kelly ارسال نمایید:
tpkelly@acm.org tpkelly@eecs.umich.edu tpkelly@cs.princeton.edu
همچنین ببینید (SEE ALSO)
gawk(1)، GAWK: Effective AWK Programming، و Persistent Memory gawk User Manual. در صورتی که سامانه Info روی سیستم شما نصب باشد، هر دو کتابچه راهنما باید در آن در دسترس باشند.
برای آخرین کدهای منبع و راهنما پیوند زیر را ببینید:
<https://web.eecs.umich.edu/~tpkelly/pma>
حق تکثیر و مجوزها (COPYING PERMISSIONS)
حق نشر © 2022 متعلق به Terence Kelly است.
اجازه داده میشود که نسخههای عین به عین از این صفحه راهنما تهیه و توزیع شوند، به شرطی که اعلامیه حق نشر و این اعلامیه مجوز در تمامی نسخهها حفظ شوند.
اجازه داده میشود نسخههای اصلاحشده این صفحه راهنما تحت شرایط نسخههای عین به عین کپی و توزیع شوند، به شرطی که کل کار حاصل تحت شرایط اعلامیه مجوزی دقیقاً یکسان با این اعلامیه توزیع شود.
اجازه داده میشود ترجمههای این صفحه راهنما به زبانهای دیگر، تحت شرایط فوق برای نسخههای اصلاحشده کپی و توزیع شوند، به جز اینکه این اعلامیه مجوز میتواند به ترجمهای که مورد تأیید بنیاد قرار گرفته بیان شود.
| 2025-06-01 | Free Software Foundation |