خزینه (علوم رایانه)

از ویکی‌پدیا، دانشنامهٔ آزاد

در علوم رایانه، یک خزینه (به انگلیسی: pool) یک گردآورد از منابع است که در حافظه، «به صورت آماده استفاده»، نگهداری می‌شود، و این یعنی حافظه‌ای نیست که در حال استفاده است، یا بعد از استفاده آزاد شده است. در این زمینه، منابع می‌تواند به منابع سیستمی مثل گرداننده فایل، که برای یک فرایند بیرونی است، یا منابع درونی مثل اشیاء اشاره کند. یک کارخواه خزینه از خزینه یک منبع را درخواست می‌کند، و سپس عملیات مورد نظر را روی آن انجام می‌دهد، و سپس منبع را برمی‌گرداند. وقتیکه کارخواه استفاده از منبع را تمام کرد، آن را به خزینه برمی‌گراند، نه اینکه آزادش کند و نه اینکه آن را گم کند.

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

حالت‌های خاص خزینه شامل خزینه اتصال، خزینه ریسه، و خزینه حافظه است.

خزینه شیء[ویرایش]

خزینه‌ها برای اشیاء هم می‌توانند استفاده شوند، که در این زمینه یک خزینه به یک الگوی طراحی برای پیاده‌سازی خزینه در زبان‌های شیءگرا اشاره دارد، مثل الگوی خزینه شیء. خود شیء هیچ منبع خارجی را نگهداری نمی‌کند، و فقط حافظه اشغال می‌کند، اگرچه یک شیء از قبل ساخته شده از اختصاص حافظه مورد نیاز برای ساخت شیء جلوگیری می‌کند. خزینه شیء وقتی مفید است که هزینه ساخت شیء بالا است، اما در حالات خاص این خزینه‌سازی شیء ساده ممکن است موثر نباشد و در واقع ممکن است کارایی را کاهش دهد.[۱]

پانویس[ویرایش]

  1. "Java theory and practice: Urban performance legends, revisited". ibm.com. 2005-09-27. Archived from the original on 2011-12-29. Retrieved 2013-10-31.

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا. «Pool (computer science)». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۱ سپتامبر ۲۰۲۳.