ECE459

Performance Playbook

A map of where performance goes and what you do about it. Organized by the layer the cost lives at, from fundamental laws down to deployment. Covers ECE459 L01-L35.

How do I use this?

Start by finding where your program is slow (profile first), then jump to that section. The laws at the top tell you what’s even achievable before you start.

Fundamental limits

You can’t optimize past these, know them before you start:

Single-core CPU

Making one thread go faster, the hardware already does most of this for you:

Memory hierarchy

Cache is usually where your time actually goes:

Concurrency

Using multiple cores on shared state, see Concurrency Problems for the failure taxonomy:

Async and I/O

Hiding latency when the bottleneck isn’t CPU:

Rust as a performance language

Why the course teaches it: safety without GC overhead:

Reduced-resource computation

Sometimes the win is doing less work:

Offload to GPU

Massive parallelism for throughput-bound work:

Scale out

When one machine isn’t enough:

Measurement (do this first!)

You can’t optimize what you can’t measure:

Deploy and operate

Performance doesn’t stop at the binary:

Quick “my program is slow, what do I do”