TGViewer
Gopher Academy Gopher Academy @gopher_academy · 3.85K subscribers
Post #4233 627
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت می‌شود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم. درک درست از ساختار حافظه به شما کمک می‌کند عملکرد برنامه‌هایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
برای مدیریت بهینه‌ی حافظه، Go حافظه‌ی تخصیص‌داده‌شده از طریق memory mapping را به واحدهای سلسله‌مراتبی تقسیم می‌کند:

ساختار حافظه:

Arena (۶۴MB)

بزرگ‌ترین واحد تخصیص در Go.

هر Arena فضایی به اندازه‌ی ثابت ۶۴MB دارد.

اGo سعی می‌کند Arenaها رو پشت‌سر هم قرار بده، ولی همیشه تضمین نمی‌شه (به خاطر رفتار mmap).

Page (۸KB)

هر Arena به صفحات (Page) تقسیم می‌شود.
سایز هر Page: ۸KB.
این Pageها با Pageهای سیستم‌عامل (معمولاً ۴KB) متفاوت هستند.
تخصیص اشیاء:
اگر اندازه‌ی شیء کوچک‌تر از ۸KB باشد → چندین شیء در یک Page جا می‌گیرند.

اگر اندازه‌ی شیء دقیقاً ۸KB باشد → کل Page را اشغال می‌کند.
اگر اندازه‌ی شیء بزرگ‌تر از ۸KB باشد → روی چند Page گسترده می‌شود.

اGoroutine Stack
استک هر goroutine در همین Pageها نگهداری می‌شود.
هر استک در ابتدا فقط ۲KB است.
بنابراین یک Page (۸KB) می‌تواند تا ۴ goroutine stack را در خود جا دهد.

به زبان ساده:
اGo حافظه را اول به Arena (۶۴MB) تقسیم می‌کند، سپس هر Arena را به Page (۸KB) می‌شکند و این Pageها برای اشیاء مختلف یا استک goroutineها استفاده می‌شوند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  • ❤ 4
  • 👍 1
  • 🏆 1
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 →