Gopher Academy
3.87K subscribers
927 photos
40 videos
280 files
2.09K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Memory Allocation in Go

🟢 خلاصه مقاله:
مدیریت و تخصیص کارای حافظه، پایه‌ی عملکرد و پایداری برنامه‌های Go است. این مقاله با مجموعه‌ای از نمودارهای روشن، پشت‌پرده‌ی تخصیص حافظه در Go را شرح می‌دهد: از نحوه‌ی درخواست حافظه از سیستم‌عامل و سازمان‌دهی آن در runtime تا تعامل آن با garbage collector و تأثیر الگوهای تخصیص بر فشار GC، تأخیر و کارایی. هدف مقاله ایجاد یک مدل ذهنی عملی است تا—even با تکیه بر پیش‌فرض‌های منطقی Go—بتوانید بهتر پروفایل‌ها را بخوانید، درباره‌ی تأخیر نتیجه‌گیری کنید و از تله‌های رایج عملکردی دور بمانید.

#Go #Golang #MemoryManagement #GarbageCollection #Performance #GoRuntime #SystemsProgramming

🟣لینک مقاله:
https://golangweekly.com/link/174413/web


👑 @gopher_academy
🔥3
🔵 عنوان مقاله
Slice Tails Don't Grow Forever

🟢 خلاصه مقاله:
** این مطلب از Golang Weekly توضیح می‌دهد که در Go، وقتی از یک slice یک “tail” مثل s[i:] می‌سازیم، رشد آن به capacity وابسته است و پایدار و بی‌نهایت نیست. تا وقتی capacity اجازه دهد، append روی همان آرایه‌ی پشتی انجام می‌شود؛ اما به‌محض عبور از capacity، runtime آرایه‌ی جدیدی می‌سازد و داده‌ها را کپی می‌کند، در نتیجه اشتراک حافظه با sliceهای قبلی از بین می‌رود. این رفتار هم می‌تواند باعث شگفتی در منطق اشتراک‌گذاری داده‌ها شود و هم روی کارایی و مصرف حافظه اثر بگذارد (مثلاً نگه‌داشتن یک زیر-slice کوچک می‌تواند یک آرایه‌ی بزرگ را در حافظه زنده نگه دارد). نتیجهٔ عملی: روی رشد بی‌نهایت tail حساب نکنید، خروجی append را یک slice بالقوه با آرایه‌ی پشتی جدید در نظر بگیرید، برای آزادسازی حافظه از copy استفاده کنید، در صورت نیاز capacity مناسب را از قبل با make در نظر بگیرید و حتماً با benchmark تصمیم بگیرید.

#Go #Golang #Slices #Append #MemoryManagement #Performance #GolangWeekly

🟣لینک مقاله:
https://golangweekly.com/link/175065/web


👑 @gopher_academy
🤝1