🧠د Heap Bits در Go — هوشمندی در مدیریت حافظه
در Go، اشیاء کوچکتر از ۵۱۲ بایت درون spanهایی نگهداری میشن که خودشون چندین شیء هماندازه دارن.
اما چطور Garbage Collector میفهمه کدوم بخش از این اشیاء شامل pointer هست؟
پاسخ: با Heap Bitmap ✅
🔹 هر span یک نقشهی بیتی (bitmap) در انتهای خودش داره.
🔹 هر بیت مربوط به یک "word" از حافظه (معمولاً ۸ بایت) هست:
1️⃣ = شامل pointer
0️⃣ = دادهی عادی (non-pointer)
به این ترتیب، GC فقط بخشهایی رو اسکن میکنه که واقعاً pointer دارن — سریعتر و بهینهتر از اینکه کل حافظه بررسی بشه.
📦 هر span علاوهبر فضای مورد نیاز برای اشیاء، مقداری فضا برای این bitmap کنار میگذاره.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Post #4286
428
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…

- ❤ 1
- 👍 1