Benchmarking and finding bottlenecks
Another method for determining slow parts of code is to use benchmarks. Benchmarks can be used to test functions for average performance and can also run benchmarks in parallel. This can be useful when comparing functions or doing micro-optimizations for certain code, especially to see how a function implementation might perform when using it concurrently. For this recipe, we'll create two structs that both implement an atomic counter. The first will use the sync
package, and the other will use sync/atomic
. We'll then benchmark both the solutions.
Getting ready
Refer to the Getting ready section of the Speeding up compilation and testing cycles recipe in this chapter.
How to do it...
These steps cover writing and running your application:
- From your terminal/console application, create the
chapter13/bench
directory and navigate to it. - Copy tests from https://github.com/agtorre/go-cookbook/tree/master/chapter13/bench or use this as an exercise to write some of...