📌 Tail waste in span
🔹 هر Span ممکنه مقداری فضای استفادهنشده در انتهای خودش داشته باشه، به این فضا میگن Tail Waste.
* مثال (تصویر بالا):
* اگر Span با ۲ Page ساخته بشه → Tail Waste = 5504B
* اگر Span با ۴ Page ساخته بشه → Tail Waste = 128B
✅ پس Go برای کاهش هدررفت، از ۴ Page استفاده میکنه.
🧩 چرا فقط 67 Size Class داریم؟
برنامهی Go میتونه آبجکتهایی با سایزهای مختلف بخواد، اما Go فقط 67 Size Class برای آبجکتهای کوچک تعریف کرده.
📍 سوال: اگه ما آبجکت 300B بخوایم که دقیقاً تو جدول Size Classes نیست، چی میشه؟
* Go سایز رو Round Up میکنه به نزدیکترین Size Class بزرگتر.
* اینجا 300B → میشه 320B
🔑 نکته مهم:
اون چیزی که ما در تصویر بهعنوان "Object" میبینیم، دقیقاً آبجکت برنامه نیست، بلکه یک Size Class Object هست که توسط Runtime مدیریت میشه.
به زبان ساده:
*ا Go با Tail Waste Optimization جلوی هدررفت زیاد رو میگیره.
* با Size Class Rounding هم حافظه رو سریعتر و سادهتر مدیریت میکنه.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Post #4262
663
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…

- 🔥 2