10:00
-
10:30
-
10:30
Day 2
Understanding Why Your CPU is Slow: Hardware Performance Insights with PerfGo
<h2>The Problem</h2>
<p>Go's pprof tells you <em>where</em> your CPU time is spent, but not <em>why</em> the CPU is slow. Is it cache misses? Branch mispredictions? These hardware-level performance characteristics are invisible to pprof but critical for optimisation.</p>
<h2>The Solution</h2>
<p>perf-go bridges this gap by leveraging Linux's <code>perf</code> tool and CPU Performance Monitoring Units (PMUs) to expose hardware performance counters for Go programs. It translates perf's low-level observations into pprof's familiar format, giving Go developers hardware insights without leaving their existing workflow.</p>
<h2>What You'll Learn</h2>
<p>In this talk, we'll:
- Demonstrate the limitations of pprof for understanding performance bottlenecks
- Show how perf-go exposes CPU cache behaviour, branch prediction, and memory access patterns
- Walk through real benchmarks where we identify and fix cache-line contention issues
- Explore how hardware counters can guide improvements that pprof alone wouldn't reveal</p>
<h2>Target Audience</h2>
<p>Go developers who want to optimise performance-critical code and understand the "why" behind their bottlenecks. Basic familiarity with profiling concepts helpful but not required.</p>