cache

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

توضیح

هنگام نیاز به داده یا نتیجه، ابتدا cache بررسی می‌شود؛ اگر مورد لازم در آن باشد، همان استفاده می‌شود. در غیر این صورت، داده از منبع اصلی دریافت یا نتیجه محاسبه می‌شود و می‌توان آن را برای دفعات بعد ذخیره کرد. این سازوکار از CPU تا برنامه‌های وب کاربرد دارد و محتوای آن معمولاً از منبع اصلی قابل بازسازی است. چون دادهٔ اصلی ممکن است تغییر کند، باید مشخص باشد چه زمانی محتوای cache حذف یا تازه شود.

مثال

from functools import cache

@cache
def square(n):
    return n * n

square(12)  # محاسبه و ذخیرهٔ نتیجه
square(12)  # استفادهٔ دوباره از نتیجه

چرا مهم است

وقتی برنامه بارها داده‌ای را می‌خواند یا محاسبه‌ای را تکرار می‌کند، cache می‌تواند زمان پاسخ و کار تکراری را کاهش دهد؛ اما مدیریت نادرست آن ممکن است دادهٔ قدیمی به کاربر نشان دهد.

این کارت را هوش مصنوعی نوشته و دو بار با هوش مصنوعی بررسی شده است.

مطالبی با این مفهوم

  1. Polar Proxy

    Polar Proxy؛ استفادهٔ دوباره از connection با تطبیق دقیق و کاهش کار تکراری

    Polar Proxy برای read‌ها، مالکیت connection‌ها را در یک pool مرکزی نگه می‌دارد. تطبیق دقیق، cache محلی worker و انتخاب server با P2C،؜ بخش‌های اصلی طراحی شرح‌داده‌شده‌اند.

    یادگیری: ۵ مفهومافزوده‌شده postgr.es

  2. llama.cpp

    پیشنهاد اجرای بخشی از expert‌های خارج از cache روی CPU در llama.cpp

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

    یادگیری: ۴ مفهومافزوده‌شده github.com

  3. python

    تفاوت == و is در Python؛ اشتباهی که ممکن است در تست پنهان بماند

    در Python،؜ == برابری مقدار را بررسی می‌کند، اما is یکسان‌بودن خود object را. رفتار cache در CPython می‌تواند این تفاوت را در تست‌های کوچک پنهان کند.

    یادگیری: ۳ مفهومافزوده‌شده dev.to

  4. Int8-vllm

    Int8-vllm با پشتیبانی از Nemotron 3.5 Bolt 74B به‌روز شد

    سازندهٔ Int8-vllm از اجرای checkpoint‌های اصلی Nvidia Bolt،؜ افزودن cache برای وزن‌های int8 و پشتیبانی از AMD Infinity Storage خبر داده است.

    یادگیری: ۳ مفهومافزوده‌شده reddit.com

  5. Store Forwarding

    دام عملکردی store forwarding: وقتی load از store بزرگ‌تر است

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

    یادگیری: ۴ مفهومافزوده‌شده lemire.me

  6. Architecture & optimization

    معماری تازه GitHub برای هزاران push هم‌زمان به یک repository

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

    یادگیری: ۵ مفهومافزوده‌شده github.blog

  7. Django

    انتشار Django 6.1.3،؜ 6.0.10 و 5.2.19 برای رفع شش مشکل امنیتی

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

    یادگیری: ۴ مفهومافزوده‌شده djangoproject.com

  8. Performance

    بهینه‌سازی عملیات نانوثانیه‌ای: اهمیت cache CPU

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

    یادگیری: ۱ مفهومافزوده‌شده foojay.io

  9. Maven

    کاهش زمان بیلد با Maven Build Cache در پروژه‌های سازمانی

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

    یادگیری: ۲ مفهومافزوده‌شده foojay.io

  10. Vercel

    Vercel CI به نسخه بتا رسید

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

    یادگیری: ۳ مفهومافزوده‌شده vercel.com

  11. Python

    چرا Circular Import در Python رخ می‌دهد و راه‌حل مطمئن آن چیست؟

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

    یادگیری: ۳ مفهومافزوده‌شده realpython.com