برای اشیایی که اندازهشان بیشتر از ۵۱۲ بایت باشد، استفاده از یک بیتمپ بزرگ برای مدیریت حافظه کارآمد نیست. به جای آن، هر شیء با یک هدر ۸ بایت به نام "malloc header" همراه میشود. این هدر شامل یک اشارهگر به اطلاعات نوع شیء (type information) است.
این اطلاعات نوع شامل یک فیلد به نام "GCData" است که چیدمان اشارهگرها (pointer layout) در نوع شیء را کدگذاری میکند. جمعآوری زباله (garbage collector) از این دادهها استفاده میکند تا به طور دقیق و کارآمد فقط فیلدهایی که حاوی اشارهگرها هستند را هنگام پیمایش گراف اشیاء پیدا کند.
به زبان ساده، این روش به جمعآوری زباله کمک میکند تا بدون نیاز به بررسی کل حافظه، فقط بخشهای مهم را که به اشیاء دیگر اشاره دارند، شناسایی و مدیریت کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Post #4287
388
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…

- 👍 1
- 🤝 1