عملکرد و پروفایلسازی
بخشی از دوره Go
یک روز کسی میگوید سرویس کند است، کد را باز میکنید و بیدرنگ همان حلقهای را میبینید که حتما مقصر است. بازنویسیاش میکنید، حالا خیلی هوشمندانهتر شده، و سرویس دقیقا به همان کندی قبل است، چون هزینه واقعی در یک انکود JSON سه تابع آنطرفتر بوده که حواس کسی به آن نبود.
این برای همه پیش میآید، بارها، و ضعف مهارت هم نیست. برنامهها وقتشان را جاهایی میگذرانند که شهود آدمیزاد در حدس زدنشان بد عمل میکند، چون کامپایلر، زبالهروب (garbage collector) و کشهای CPU همه دارند تصمیمهایی میگیرند که شما ننوشتهاید. تنها راه قابل اتکا این است: اندازه بگیرید، یک چیز را عوض کنید، دوباره اندازه بگیرید. ...
میخواهی Go عملکرد و پروفایلسازی را در یک محیط واقعی یاد بگیری؟
روی دکمه زیر بزن تا یک ماشین لینوکس با Go آماده دریافت کنی و عملکرد و پروفایلسازی را بهصورت عملی با یک مربی هوشمند که کدت را میشناسد تمرین کنی.
شروع این درسعملکرد و پروفایلسازیچه چیزهایی یاد میگیری
- Go test -bench
- Pprof CPU and heap profiles
- Escape analysis with -gcflags=-m
- Avoiding unnecessary allocations
- Preallocating slices
- Sync.Pool intuition
این درس را به زبان خودت بخوان
همهٔ درسهای این دوره
20 درس- 1سلام، گو25 دقیقه
- 2متغیرها و انواع داده25 دقیقه
- 3کنترل جریان: if و for30 دقیقه
- 4توابع30 دقیقه
- 5اسلایسها (slices) و مپها (maps)35 دقیقه
- 6استراکتها (structs) و پوینترها (pointers)35 دقیقه
- 7متدها (methods) و اینترفیسها (interfaces)35 دقیقه
- 8مدیریت خطا35 دقیقه
- 9ماژولها (modules) و ساختار پروژه35 دقیقه
- 10پروژه نهایی CLI کوچک40 دقیقه
- 11گشتی در کتابخانه استاندارد40 دقیقه
- 12آزمایش و بنچمارکها (benchmarks)40 دقیقه
- 13گوروتینها (goroutines) و کانالها (channels)40 دقیقه
- 14الگوهای همزمانی45 دقیقه
- 15جنریکها (generics)35 دقیقه
- 16سرورهای HTTP45 دقیقه
- 17پایگاههای داده با database/sql45 دقیقه
- 18عملکرد و پروفایلسازی40 دقیقه
- 19الگوهای طراحی در Go40 دقیقه
- 20استقرار و محیط تولید45 دقیقه
