TGViewer
Gopher Academy Gopher Academy @gopher_academy · 3.85K subscribers
Post #4306 513
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت می‌شود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم. درک درست از ساختار حافظه به شما کمک می‌کند عملکرد برنامه‌هایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
📦 Tracking Free Pages

در Go، فضای آدرس مجازی بسیار بزرگه، بنابراین برای مشخص کردن وضعیت هر صفحه (آزاد یا در حال استفاده) از bitmap استفاده می‌شه

در این bitmap:

1 = صفحه در حال استفاده (توسط span)

0 = صفحه آزاد

🔹 هر bitmap شامل ۸ عدد uint64 هست (یعنی ۶۴ بایت) و وضعیت ۵۱۲ صفحه‌ی متوالی رو نگه می‌داره.
🔹 از اون‌جا که هر arena در Go اندازه‌ی ۶۴ مگابایت داره و هر صفحه ۸ کیلوبایت هست، پس در هر arena:

۸۱۹۲ صفحه داریم

۱۶ تا bitmap برای پوشش کل صفحات

در مجموع فقط ۱ کیلوبایت حافظه برای ذخیره‌ی وضعیت کل صفحات لازمه! ⚡️

اما مشکل: پیمایش bitmap برای پیدا کردن صفحات آزاد هنوز کند بود ⏳
برای حل این، Go مفهومی به نام Summary معرفی کرد که سه ویژگی داره:

start → تعداد صفرهای پشت سر هم از ابتدای bitmap

end → تعداد صفرهای پشت سر هم از انتهای bitmap

max → طولانی‌ترین دنباله‌ی صفرها در کل bitmap

هر بار که صفحه‌ای allocate یا free می‌شه، این summary بلافاصله به‌روزرسانی می‌شه تا Go بتونه خیلی سریع‌تر صفحات آزاد رو پیدا کنه 🚀
➖➖➖➖➖➖➖➖
👑 @gopher_academy
More from @gopher_academy
  1. Sep 29, 2026📢 معرفی اپ «نویسنده تاریخ و مبلغ چک» موقع نوشتن چک، تاریخ و مبلغ را با حروف نوشتن وقت می‌…
  2. Sep 29, 2026🔵 عنوان مقاله How Do You Add a New Keyword to Go? (For Sum Types) 🟢 خلاصه مقاله: در زبان…
  3. Sep 28, 2026🔵 عنوان مقاله The First Official TinyGo Hardware 'Starter Kit' 🟢 خلاصه مقاله: در دنیای ف…
  4. Sep 28, 2026🔵 عنوان مقاله Is Go's FIPS 140 Code Bloating Your Binaries? 🟢 خلاصه مقاله: در دنیای فناو…
  5. Sep 28, 2026🔵 عنوان مقاله design for sum types 🟢 خلاصه مقاله: طراحی انواع جمع (Sum Types) در حال حاض…
  6. Sep 28, 2026🔵 عنوان مقاله Hister: A Go-Powered Search Engine for Your Own Stuff 🟢 خلاصه مقاله: در دن…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →