Leipzig Gophers

🔗Meetup #7 wrap-up

🔗 Concurrency in Go

Concurrency is hard, but the primitive building blocks of CSP in Go - goroutines and channels - can make things simpler.

We glanced at the six chapters of Concurrency in Go, and learned a bit about the problem setting, goroutine sizes, context switch times and patterns.

The notes can be found here:

In the book, the perf tool is used to benchmark context switch times of the kernel - and to compare it with context switch times in the Go scheduler.

Sidenote: you can see the number of context switches with various tools, e.g. dstat.

Another performance debugging tool are flame graphs, which can be extended in time, e.g. with flamescope:

Apart from technical topics, we discussed adoption stories of Go in companies. It’s impossible to replace a huge system at once, but people might be surprised by how resource efficient Go can be - and get curious.