Gopher Academy
3.85K subscribers
933 photos
42 videos
280 files
2.19K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How We Saved 70% CPU and 60% Memory in Refinery’s Go Code

🟢 خلاصه مقاله:
**تیم Refinery روی یک سرویس مهم مبتنی بر Go با مصرف بالای CPU و Memory کار می‌کرد و با پروفایلینگ دقیق (pprof، tracing و بنچمارک‌های انتهابه‌انتها) گلوگاه‌های واقعی را پیدا کرد. بیشترین صرفه‌جویی با حذف کارهای غیرضروری به‌دست آمد: حذف پردازش‌ها و serialization تکراری، دوری از reflection در مسیرهای داغ، جایگزینی JSON در hot path با دسترسی مستقیم/کدگذاری ساده، پیش‌اختصاص slices/maps و بازاستفاده از بافرها برای کاهش allocation و فشار GC. در هم‌روندی، به‌جای goroutineهای بدون‌مهار، از worker poolهای محدود و backpressure استفاده شد، کارها batch و داده‌ها تا حد امکان stream شدند تا قفل‌زنی و جابه‌جایی زمینه کاهش یابد. همچنین چند حلقه O(n^2) با ایندکس‌گذاری مبتنی بر map/set جایگزین شد، نتایج گران با cache کردن تکرار نشد و الگوهای I/O با خواندن/نوشتن تجمیعی بهینه شدند. در نهایت با تکیه بر allocationهای روی stack، استفاده از sync.Pool و روش‌های zero-copy، نیاز به GC پایین آمد. نتیجه: حدود 70% کاهش مصرف CPU و 60% کاهش Memory همراه با بهبود تاخیرهای p95/p99. درس کلیدی: بهینه‌سازی اغلب یعنی کمتر کار کردن—اندازه‌گیری کن، کار زائد را حذف کن و ساده‌سازی را تکرار کن.

#Go #Golang #Performance #Profiling #CPU #Memory #Optimization #pprof

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


👑 @gopher_academy
👍21