Modules III and IV explained what the runtime does. This module is about measuring a program, understanding what the compiler and the CPU did with it, and making it faster on purpose.
| # | Lesson | The question it answers |
|---|---|---|
| 01 | Benchmarking and Profiling | How do I measure correctly, and find where the time and memory go? |
| 02 | The Compiler | What do inlining, bounds-check elimination and PGO do to my code? |
| 03 | Cache-Friendly Data | Why does data layout matter more than instruction count? |
| 04 | cgo, SIMD and Assembly | How do I reach native code and vector instructions, and what does it cost? |
| 05 | Networking and the Netpoller | How does a Go server handle connections, and how do I stream a response? |
When you finish you can write a trustworthy benchmark, read a CPU and heap profile, explain a speed-up in terms of cache lines and inlining, and build a streaming HTTP server that behaves under load. Module VI uses every one of these.