Session
Become a 10x Developer with Go Performance Optimization
Performance optimization makes you a 10x software engineer. You can help your company save money or serve more customers with the same resources. It is a mandatory skill on the resume if you want to stand out from the crowd. By optimizing performance, you also gain a deeper understanding of how the Go runtime works under the hood, making you more performance-oriented when writing Go code.
This session shows you how to optimize your Go code from a CPU and memory perspective.
Unfortunately, performance optimization is not a trivial or straightforward process. Whenever a software engineer wants to optimize code, he often stumbles across several terms such as profiling, tracing, latency, throughput, Garbage Collector, heap, stack, etc. These terms can easily create confusion and headaches.
If you've ever experienced this pain or want to avoid it in the future, this session comes to the rescue.
We start with their definitions and usages so we all speak the same language throughout the session.
Then, we explore the performance optimization process. It's an iterative process involving studying, benchmarking, changing code, benchmarking (again), comparing, and deciding. Thanks to this session, you'll learn to go through this process without getting lost.
You'll understand that performance optimization is not just about changing source code. It's a journey. And before embarking on it, you need everything ready and set.
We'll also cover the importance of understanding collected metrics and values and how to use them to evaluate potential code changes. I will show you how to capture a snapshot of your program's state and analyze it effectively.
Then, we explore the tools Go provides for performance analysis. Go has an excellent tooling system to support you in this journey.
Some topics covered are benchmarks, Go compiler's flags, Go Garbage Collection, escape analysis, inlining, core dumps, memory and CPU profiles, trace, pprof, stress-test tools, Go's environment variables, etc.
By learning a bit about each topic, you can try to optimize your code with the right tool. Furthermore, you'll understand which tools are worth studying for your specific scenario.
Whether you're a newbie on the subject or have previous experience with performance optimization, this session will provide you with several hints, concepts, and uh-oh moments.
Remember: software efficiency is as important as software correctness.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top