Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Go performance analysis in action

Francesc Campoy (Dgraph)
1:30pm5:00pm Tuesday, July 17, 2018
Emerging languages
Location: D137/138
Level: Intermediate
Average rating: *****
(5.00, 1 rating)

Who is this presentation for?

  • Software developers with an interest in performance

Prerequisite knowledge

  • A basic knowledge of Go

Materials or downloads needed in advance

What you'll learn

  • Explore tools to analyze programs and understand the possible causes of a lack of performance
  • Understand which tools work better for each kind of performance issue (tracing, pprof, etc.)

Description

Francesc Campoy Flores walks you through the tools that make Go a great programming language, from the well-known go tool to lesser-known tools that allow you to profile, debug, and understand the performance of your programs. Along the way, you’ll learn how to tune Visual Studio Code as a Go editor, although you are welcome to use any other editor—most provide great integration with Go.

This tutorial will cover the third chapter of Francesc’s full-day workshop and includes the following topics:

Introduction to performance

  • How to measure performance using the time command, Apache Benchmark, and others

Testing and benchmarking

  • Writing unit tests in Go and converting them into benchmarks
  • Keeping track of how performant your functions are

Profiling

  • The benefits and limitations of performance profiling
  • Using pprof for CPU and memory profiling and displaying the results as flame graphs

Runtime tracing

  • Using runtime tracing for a complementary point of view of performance that shows us what the program is doing when nothing is happening
Photo of Francesc Campoy

Francesc Campoy

Dgraph

Francesc Campoy is the VP of Product at Dgraph: the most advanced distributed graph database.

Before that, he was VP of Product and Developer Relations at source{d}, the company enabling Machine Learning for large scale code analysis and building the platform for the future of developer tooling. Previously, he worked at Google as Senior Developer Advocate for Google Cloud Platform and the Go team.

He’s passionate about programming and programmers, especially Go and gophers. As part of his effort to help those learning, he’s given many talks and workshops at conferences like Google I/O, Gophercon(s), GOTO, or OSCON.

When he’s not on stage he’s probably coding, writing blog posts, or working on his justforfunc YouTube series where he hacks while cracking bad jokes.