Go Performance Optimization
1h 13mAdvanced2023-06-14
Authors

Miki Tebeka
CEO at 353Solutions
Course details
Code that runs faster and consumes less memory can save your organization a lot of money, and responsive applications keep your users happy. For the past 25 years, Miki Tebeka has helped companies develop faster software with fewer resources. In this course, he shares the tools and techniques that he uses when optimizing code and services. Learn when and why to optimize and go over goal setting. Go over how to measure code performance and memory consumption. Explore solutions that involve concurrency and service optimization. Plus, discover why recording benchmarks is important and how to monitor and alter performance effectively.
Skills covered
GoAdvancedGoogleCloud ServicesProgramming LanguagesCloud ComputingSoftware Development
Concepts
0. Introduction
- 01 - Go performance optimization
- 02 - What you should know
- 03 - Setting up
1. Performance Overview
- 04 - Why optimize
- 05 - Setting goals
- 06 - Understanding Big O notation
- 07 - Computer architecture overview
2. CPU Optimization
- 08 - Measuring speed
- 09 - Using the profiler
- 10 - Common mistakes
- 11 - Tips and tricks
- 12 - Challenge - Improve a data structure
- 13 - Solution - Improve a data structure
3. Memory Optimization
- 14 - Measuring memory
- 15 - Profiling memory
- 16 - Common mistakes
- 17 - Tips and tricks
- 18 - Challenge - Improve memory consumption
- 19 - Solution - Improve memory consumption
4. Concurrency
- 20 - Amdahl's law and its implications
- 21 - Fan out
- 22 - Consumer producer
- 23 - Challenge - GitHub influence
- 24 - Solution - GitHub influence
5. Service Optimization
- 25 - Measuring service performance
- 26 - Choosing serialization format
- 27 - Choosing transport medium
- 28 - Caching
- 29 - Challenge - Stock prices
- 30 - Solution - Stock prices
6. Development Process
- 31 - Why do you need a process
- 32 - Recording benchmarks
- 33 - Monitoring and alerting
Conclusion
- 34 - Next steps
Related courses
- Choosing the Right Back-End Language: TypeScript, Go, or Rust for Your Greenfield Project
- Go Standard Library
- Learning Go
- Developing Unicode-Aware Applications in Go
- Go for Developers: Practical Techniques for Effective Coding
- Effective Serialization In Go: JSON, Protocol Buffers and More
- Context Package In Go Lang
- Debugging in Go