Testing, Benchmarking, and Profiling with Go

Duration: 3 Hours

This course will take you show you how to test, benchmark, and profile your Go code. Starting with basic testing, all the way through system and memory profiling. Continue even further by using and understanding flame graphs.

Each attendee will receive a link 24 hours prior to the start of the workshop with links to all class material. Additionally, each attendee will receive a link after the workshop to the recording of the workshop as well.

Having problems purchasing above? Purchase directly from Eventbrite

Workshop Overview

This module covers general information about your instructor and course materials.

This module covers general environment setup and other resource related information needed to complete the courses contained within.

Go ships with a powerful testing framework. Tests in Go are written in the Go language, so there is no need to learn another syntax. This module will explore basic tests, table driven tests, and sub-tests. Concepts such as race conditions, code coverage, test automation. Understanding test options such as parallel, short testing, timing out tests, and verbose are also covered.

Go comes with a powerful set of tools for profiling and improving the performance of your code. Benchmarking is one of those tools, and the first one most developers start with. In this module we will cover basic benchmarking, some common benchmarking mistakes, and how to compare benchmarks to see if performance has improved.

Go ships with a number of profiling tools. This chapter will walk you through how to:

  • Use interactive pprof with a cpu profile
  • Use interactive pprof with different types of memory profiles
  • Generate profiles from benchmarks
  • Generate profiles from live/running applications
  • Generate torch graphs from benchmarks or live/running applications

This module covers where to get more support on Go, recommends books and videos, and list contact information for our instructors.

Cory LaNou


Cory specializes in Go Fundamentals, Advanced Go, Distributed Systems, and gRPC.