🔵 عنوان مقاله
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
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
Honeycomb
How We Saved 70% of CPU and 60% of Memory in Refinery’s Go Code, No Rust Required.
We've just released Refinery 3. 0 , a performance-focused update which significantly improves Refinery's CPU and memory efficiency.
👍2❤1
🔵 عنوان مقاله
some odd discrepancies when profiling their Go code on macOS.
🟢 خلاصه مقاله:
این مطلب در Golang Weekly به این میپردازد که چرا هنگام پروفایل کردن برنامههای Go روی macOS گاهی نتایج ناسازگار و غافلگیرکننده دیده میشود؛ پروفایلها بین اجراها تغییر میکنند و معمولاً با اعداد بهدستآمده روی Linux یا در CI همخوان نیستند. ریشه مسئله بیشتر به تفاوت ابزارها، رفتار سیستمعامل و ویژگیهای بار کاری برمیگردد: نمونهبرداری pprof ممکن است نقاط داغ کوتاهعمر را نبیند، مدیریت توان و زمانبندی macOS بر نرخ نمونهگیری و زمان اجرای رشتهها اثر میگذارد، و حضور cgo یا کتابخانههای بومی میتواند ردگیری پشته و نمادگذاری را دشوار کند. توصیهها شامل ترکیب pprof با Instruments، اجرای طولانیتر برای پایداری نمونهگیری، کنترل نویز محیطی (مثل ثابت نگهداشتن GOMAXPROCS و اجرای سیستم در شرایط کمبار)، تکرار چندباره اندازهگیری و نهایتاً مقایسه با مقادیری است که روی Linux (در صورت استقرار نهایی) بهدست میآیند. جمعبندی این است که پروفایلهای macOS را راهنمایی جهتدار بدانید و تصمیمهای نهایی کارایی را بر اساس پلتفرم مقصد اتخاذ کنید.
#Go #Golang #macOS #Profiling #Performance #pprof #Instruments #AppleSilicon
🟣لینک مقاله:
https://golangweekly.com/link/176897/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
some odd discrepancies when profiling their Go code on macOS.
🟢 خلاصه مقاله:
این مطلب در Golang Weekly به این میپردازد که چرا هنگام پروفایل کردن برنامههای Go روی macOS گاهی نتایج ناسازگار و غافلگیرکننده دیده میشود؛ پروفایلها بین اجراها تغییر میکنند و معمولاً با اعداد بهدستآمده روی Linux یا در CI همخوان نیستند. ریشه مسئله بیشتر به تفاوت ابزارها، رفتار سیستمعامل و ویژگیهای بار کاری برمیگردد: نمونهبرداری pprof ممکن است نقاط داغ کوتاهعمر را نبیند، مدیریت توان و زمانبندی macOS بر نرخ نمونهگیری و زمان اجرای رشتهها اثر میگذارد، و حضور cgo یا کتابخانههای بومی میتواند ردگیری پشته و نمادگذاری را دشوار کند. توصیهها شامل ترکیب pprof با Instruments، اجرای طولانیتر برای پایداری نمونهگیری، کنترل نویز محیطی (مثل ثابت نگهداشتن GOMAXPROCS و اجرای سیستم در شرایط کمبار)، تکرار چندباره اندازهگیری و نهایتاً مقایسه با مقادیری است که روی Linux (در صورت استقرار نهایی) بهدست میآیند. جمعبندی این است که پروفایلهای macOS را راهنمایی جهتدار بدانید و تصمیمهای نهایی کارایی را بر اساس پلتفرم مقصد اتخاذ کنید.
#Go #Golang #macOS #Profiling #Performance #pprof #Instruments #AppleSilicon
🟣لینک مقاله:
https://golangweekly.com/link/176897/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Go CPU Profiling on MacOS is Broken
Profiling on MacOS gives unexpected and misleading results.
🔵 عنوان مقاله
Building Dolt on Windows: The 'Pacman' Game
🟢 خلاصه مقاله:
این مجموعه به سه موضوع کلیدی برای توسعهدهندگان میپردازد: ساخت Dolt روی Windows با تمثیل بازی «Pacman» برای شکار وابستگیها و رفع ناسازگاریهای سیستمعاملی؛ بررسی عملی Crush، عامل کدنویسی مبتنی بر TUI از Charm توسط Elian Deogracia-Brito که تجربهی کار یکپارچه در ترمینال را ارزیابی میکند؛ و راهنمای Graham Helton برای پروفایلینگ برنامههای Go با pprof و k6 روی نمونهای به نام Pears. پیام اصلی: ایجاد ساختهای پایدار روی Windows نیازمند مهار تفاوتهای پلتفرمی است، ابزارهای TUI مانند Crush میتوانند تمرکز و سرعت جریان کاری ترمینالمحور را بالا ببرند، و ترکیب pprof با k6 باید به عادت روزمرهی تیم برای اندازهگیری، تحلیل و بهینهسازی عملکرد تبدیل شود.
#Dolt #Windows #Pacman #Crush #Charm #TUI #Go #pprof #k6 #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/177187/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Building Dolt on Windows: The 'Pacman' Game
🟢 خلاصه مقاله:
این مجموعه به سه موضوع کلیدی برای توسعهدهندگان میپردازد: ساخت Dolt روی Windows با تمثیل بازی «Pacman» برای شکار وابستگیها و رفع ناسازگاریهای سیستمعاملی؛ بررسی عملی Crush، عامل کدنویسی مبتنی بر TUI از Charm توسط Elian Deogracia-Brito که تجربهی کار یکپارچه در ترمینال را ارزیابی میکند؛ و راهنمای Graham Helton برای پروفایلینگ برنامههای Go با pprof و k6 روی نمونهای به نام Pears. پیام اصلی: ایجاد ساختهای پایدار روی Windows نیازمند مهار تفاوتهای پلتفرمی است، ابزارهای TUI مانند Crush میتوانند تمرکز و سرعت جریان کاری ترمینالمحور را بالا ببرند، و ترکیب pprof با k6 باید به عادت روزمرهی تیم برای اندازهگیری، تحلیل و بهینهسازی عملکرد تبدیل شود.
#Dolt #Windows #Pacman #Crush #Charm #TUI #Go #pprof #k6 #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/177187/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Building Dolt on Windows: The Pacman Game
How we build Dolt from source on Windows using Git Bash, MSYS2, and pacman.
🔵 عنوان مقاله
Testing Out Crush, Charm's TUI-Based Coding Agent
🟢 خلاصه مقاله:
این مطلب با آزمودن Crush از Charm نشان میدهد یک دستیار کدنویسی مبتنی بر TUI چگونه میتواند کارهای روزمره توسعه را مستقیماً در ترمینال تسهیل کند؛ از پیمایش مخزن و تولید قطعهکد تا اجرای فرمانها و نوشتن تست، با تمرکز بر جریان کاری سریع و کلیدمحور. در کنار مزایایی مانند کاهش جابهجایی بین ابزارها و هماهنگی با سبک یونیکسی، به محدودیتهای رایجِ عاملها نیز اشاره میشود: وابستگی به کیفیت مدل، نیاز به راهنمایی دقیق در پروژههای بزرگ/نامعمول و اینکه برخی وظایف هنوز از IDE سود میبرند. همچنین به نوشتهای از Graham Helton درباره پروفایلکردن برنامههای Go با pprof و k6 ارجاع داده میشود که چرخهای سنجشمحور (تولید بار با k6، تحلیل گلوگاهها با pprof، و تکرار) را توصیه میکند؛ چرخهای که با ابزارهای ترمینالی و عاملی مثل Crush روانتر پیش میرود.
#Crush #Charm #TUI #CodingAgent #Go #pprof #k6 #DeveloperTools
🟣لینک مقاله:
https://golangweekly.com/link/177188/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Testing Out Crush, Charm's TUI-Based Coding Agent
🟢 خلاصه مقاله:
این مطلب با آزمودن Crush از Charm نشان میدهد یک دستیار کدنویسی مبتنی بر TUI چگونه میتواند کارهای روزمره توسعه را مستقیماً در ترمینال تسهیل کند؛ از پیمایش مخزن و تولید قطعهکد تا اجرای فرمانها و نوشتن تست، با تمرکز بر جریان کاری سریع و کلیدمحور. در کنار مزایایی مانند کاهش جابهجایی بین ابزارها و هماهنگی با سبک یونیکسی، به محدودیتهای رایجِ عاملها نیز اشاره میشود: وابستگی به کیفیت مدل، نیاز به راهنمایی دقیق در پروژههای بزرگ/نامعمول و اینکه برخی وظایف هنوز از IDE سود میبرند. همچنین به نوشتهای از Graham Helton درباره پروفایلکردن برنامههای Go با pprof و k6 ارجاع داده میشود که چرخهای سنجشمحور (تولید بار با k6، تحلیل گلوگاهها با pprof، و تکرار) را توصیه میکند؛ چرخهای که با ابزارهای ترمینالی و عاملی مثل Crush روانتر پیش میرود.
#Crush #Charm #TUI #CodingAgent #Go #pprof #k6 #DeveloperTools
🟣لینک مقاله:
https://golangweekly.com/link/177188/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Graham Helton
Testing out Crush, a TUI based
coding agent (in neovim btw)
coding agent (in neovim btw)
Using Charm's new AI coding
agent to build an open graph image generator for this site.
agent to build an open graph image generator for this site.
❤1