📌 Span and Size Class in Go
🔹 یکی از مفاهیم کلیدی در مدیریت حافظه گو Span است.
🧩 Span
* یک Span شامل یک یا چند Page متوالی است.
* هر Span به چند شیء همسایز تقسیم میشود.
* این کار باعث میشود Go از استراتژی segregated fit allocation استفاده کند:
* تخصیص بهینه برای اندازههای مختلف
* کاهش fragmentation (تکهتکه شدن حافظه)
🔸 اطلاعات هر Span در یک ساختار به نام mspan ذخیره میشود:
* آدرس شروع اولین Page
* تعداد Pageها
* تعداد اشیاء تخصیصیافته
* و سایر متادیتا
📦 Size Class
ا * Go سایز اشیاء را در گروههایی به نام Size Class تقسیمبندی میکند.
* هر Span دقیقاً به یک Size Class تعلق دارد.
ا * Go در مجموع ۶۸ Size Class تعریف کرده است:
ا * Class 0 → برای اشیاء بزرگتر از 32KB
ا * Class 1 تا 67 → برای اشیاء کوچک و خیلی کوچک
به زبان ساده:
ا Go با تقسیم حافظه به Span و گروهبندی آنها در Size Class**، تخصیص حافظه را سریع و بهینه نگه میدارد.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Post #4260
761
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
- 🤝 1