Skip to content
Opensource internals
  • Posts

Profiling

Go's Execution Tracer: A Ring Buffer of Events Per Goroutine

Oct 21, 2026 18 min read Jay Hubbert

Unlike pprof, the execution tracer records every event: goroutine starts, stops, blocks, syscalls and GC phases are batched per M, deduplicated through lock-free hash tries, and …

GoInternalsTracingProfilingScheduling

Read more →

How Go's CPU Profiler Works: SIGPROF, the Signal Stack and 100 Hz Sampling

Oct 21, 2026 20 min read Jay Hubbert

A 100 Hz setitimer(ITIMER_PROF) raises SIGPROF, the handler runs on the gsignal stack, unwinds the running goroutine, and writes samples into a lock-free profBuf ring that …

GoInternalsProfilingSignalsPerformance

Read more →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·