Brussels / 3 & 4 February 2018


Make your Go go faster!

Optimising performance through reducing memory allocations

This talk will preset a set of techniques to make your Go programs run faster.

Starting with CPU profiling, moving through memory allocation profiling, to escape analysis, we will point out some less-well-known corners of the runtime, how they impact performance, and how to mitigate this impact.

Often, the single biggest drain on performance in a Go program is the garbage collector. Each release of the Go runtime comes with a slightly faster collector, but you can make much bigger performance improvements by not creating garbage in the first place: if you can rework your code to make fewer heap allocations, then the garbage collector will run less often and have less work to do.

Examples will be drawn from real-world experience optimising the Open Source container visualisation project Weave Cortex.


Photo of Bryan Boreham Bryan Boreham