Go

Performance Optimization

Profiling, benchmarking, CPU profiling, memory profiling, bottleneck analysis, optimizations

22 interview questionsยท
Senior
1

What is the pprof tool in Go?

Answer

pprof is Go's built-in profiling tool that analyzes CPU, memory, goroutines and other metrics. It generates binary format profiles that can be analyzed with go tool pprof. This tool is essential for identifying performance bottlenecks and optimizing Go applications in production.

2

How to enable CPU profiling in a Go application?

Answer

CPU profiling is enabled with pprof.StartCPUProfile(file) and stopped with pprof.StopCPUProfile(). This approach captures CPU usage during program execution. For web applications, using the net/http/pprof package automatically exposes profiling endpoints.

3

What is the difference between CPU profiling and memory profiling?

Answer

CPU profiling measures time spent in each function to identify execution bottlenecks, while memory profiling measures memory allocations to detect leaks and excessive usage. CPU profiling uses sampling every 10ms by default, memory profiling captures all allocations or a sample depending on configuration.

4

How to create a benchmark in Go with the testing package?

5

What does the result '1000 ns/op' mean in a Go benchmark?

+19 interview questions

Master Go for your next interview

Access all questions, flashcards, technical tests, code review exercises and interview simulators.

Start for free