TGViewer
Gopher Academy Gopher Academy @gopher_academy · 3.85K subscribers
Post #4305 374
Gopher Academy 📌 Memory Allocation in Go ❌این پست اپدیت می‌شود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم. درک درست از ساختار حافظه به شما کمک می‌کند عملکرد برنامه‌هایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
⚙️ Span Allocation: mheap.alloc

در فضای عظیم آدرس مجازی، پیدا کردن چند صفحه‌ی آزاد پشت سر هم (contiguous pages) کار ساده‌ای نیست — مخصوصاً وقتی چندین goroutine همزمان در حال تخصیص حافظه‌ان 😵‍💫

در نسخه‌های اولیه‌ی Go، تمام عملیات‌های mheap به‌صورت global sync انجام می‌شدن، یعنی فقط یک goroutine در آنِ واحد می‌تونست حافظه بگیره یا آزاد کنه.
نتیجه؟ 🔻 سرعت کم و افزایش latency در بارهای زیاد.

🧠 اما Go جدید با طراحی جدیدی به نام Scalable Page Allocator این مشکل رو حل کرده:

تقسیم‌بندی allocator برای کاهش قفل‌گذاری (lock contention)

تخصیص هم‌زمان و مستقل در چندین CPU

بهبود چشمگیر throughput در workloadهای سنگین

در واقع، mheap.alloc امروزی طوری طراحی شده که بتونه در محیط‌های بسیار concurrent هم حافظه رو سریع و هوشمند مدیریت کنه 🚀
➖➖➖➖➖➖➖➖
👑 @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 →