cache
محلی برای نگهداری موقت داده یا نتیجهٔ آمادهشده تا استفادهٔ دوباره از آن سریعتر و کمهزینهتر باشد.
توضیح
هنگام نیاز به داده یا نتیجه، ابتدا cache بررسی میشود؛ اگر مورد لازم در آن باشد، همان استفاده میشود. در غیر این صورت، داده از منبع اصلی دریافت یا نتیجه محاسبه میشود و میتوان آن را برای دفعات بعد ذخیره کرد. این سازوکار از CPU تا برنامههای وب کاربرد دارد و محتوای آن معمولاً از منبع اصلی قابل بازسازی است. چون دادهٔ اصلی ممکن است تغییر کند، باید مشخص باشد چه زمانی محتوای cache حذف یا تازه شود.
مثال
from functools import cache
@cache
def square(n):
return n * n
square(12) # محاسبه و ذخیرهٔ نتیجه
square(12) # استفادهٔ دوباره از نتیجهچرا مهم است
وقتی برنامه بارها دادهای را میخواند یا محاسبهای را تکرار میکند، cache میتواند زمان پاسخ و کار تکراری را کاهش دهد؛ اما مدیریت نادرست آن ممکن است دادهٔ قدیمی به کاربر نشان دهد.
مفهومهای مرتبط
این کارت را هوش مصنوعی نوشته و دو بار با هوش مصنوعی بررسی شده است.
مطالبی با این مفهوم
- Polar Proxy
Polar Proxy؛ استفادهٔ دوباره از connection با تطبیق دقیق و کاهش کار تکراری
Polar Proxy برای readها، مالکیت connectionها را در یک pool مرکزی نگه میدارد. تطبیق دقیق، cache محلی worker و انتخاب server با P2C، بخشهای اصلی طراحی شرحدادهشدهاند.
- llama.cpp

پیشنهاد اجرای بخشی از expertهای خارج از cache روی CPU در llama.cpp
pull request شمارهٔ 30966 در llama.cpp اجرای بخشی از expertهای خارج از cache روی CPU را پیشنهاد میکند و یک script برای تنظیم اندازهٔ cache و سهم CPU دارد.
- python

تفاوت == و is در Python؛ اشتباهی که ممکن است در تست پنهان بماند
در Python، == برابری مقدار را بررسی میکند، اما is یکسانبودن خود object را. رفتار cache در CPython میتواند این تفاوت را در تستهای کوچک پنهان کند.
- Int8-vllm
Int8-vllm با پشتیبانی از Nemotron 3.5 Bolt 74B بهروز شد
سازندهٔ Int8-vllm از اجرای checkpointهای اصلی Nvidia Bolt، افزودن cache برای وزنهای int8 و پشتیبانی از AMD Infinity Storage خبر داده است.
- Store Forwarding

دام عملکردی store forwarding: وقتی load از store بزرگتر است
اگر load از store قبلی بزرگتر باشد یا فقط بخشی از محدودهٔ آن را بپوشاند، store forwarding شکست میخورد. آزمایشهای مقاله نشان میدهند هزینهٔ این وضعیت در پردازندههای مختلف یکسان نیست.
- Architecture & optimization

معماری تازه GitHub برای هزاران push همزمان به یک repository
GitHub معماری جدید ذخیرهسازی Git خود با نام Rubicon را شرح داده است؛ معماریای که در آزمایش داخلی، ۵۰۰۰ agent همزمان و ۷۲۰۰ push در ثانیه به یک repository را پشتیبانی کرده است.
- Django

انتشار Django 6.1.3، 6.0.10 و 5.2.19 برای رفع شش مشکل امنیتی
Django سه نسخه برای رفع مشکلهای امنیتی در upload، GIS، cache و admin منتشر کرد. یکی از اصلاحهای SpatialReference برای محافظت کامل به GDAL 3.9 یا بالاتر نیاز دارد.
- Performance

بهینهسازی عملیات نانوثانیهای: اهمیت cache CPU
عملیات نانوثانیهای میتواند تحت تأثیر cache CPU قرار گیرد. حذف یک بررسی ۲۴ ثانیه صرفهجویی کرد.
- Maven

کاهش زمان بیلد با Maven Build Cache در پروژههای سازمانی
Maven Build Cache میتواند زمان بیلد را در پروژههای بزرگ بهطور قابلتوجهی کاهش دهد. در این مقاله به معرفی آن در Azure DevOps میپردازیم.
- Vercel

Vercel CI به نسخه بتا رسید
Vercel CI اکنون به شما امکان میدهد با یک خط تنظیمات، CI را برای Turborepo خود اجرا کنید. این ابزار زمان انتظار را به طور چشمگیری کاهش میدهد.
- Python

چرا Circular Import در Python رخ میدهد و راهحل مطمئن آن چیست؟
Circular Import زمانی مشکلساز میشود که یک module به نامی نیاز داشته باشد که در module دیگر هنوز تعریف نشده است. این آموزش علت خطا و تفاوت اصلاح dependency با راهحل موقت را توضیح میدهد.