Materials

The examples demonstrated throughout the course are available in a GitHub repository. For quick refresh, the course slides and handouts are available below. Please consult the handout references for further information.

Schedule

The detailed schedule is built gradually as we move through the semester.

Week Content
1 Motivation - Performance Evaluation Goals - Slides - Handouts.
2 Measurement - Time (Local) - Slides - Handouts.
3 Measurement - Time (Network).
Measurement - Concepts (Overhead, Perturbation) - Slides - Handouts.
Measurement - Hardware Counters (Demo, Architecture) - Slides - Handouts.
4 Measurement - Hardware Counters (Programming, Utilities, Analysis).
5 Measurement - Java Management Extensions - Simple Network Management Protocol - Java Virtual Machine Tool Interface - Slides - Handouts.
6 Metrics - System Investigation Metrics (Examples) - Slides - Handouts.
7 Metrics - System Overview Metrics (Properties, Examples) - Slides - Handouts - Benchmarks - Slides - Handouts - Miscellanea - Slides - Handouts.
8 Profiling (Principles, Overhead, Accuracy) - Slides - Handouts - Suggested Reading.
9 Instrumentation - Source Code Instrumentation (Coccinelle) - Bytecode Instrumentation (ASM, AspectJ, DiSL) - Machine Code Instrumentation (Kernel Tracing, KProbes, UProbes, SDT, eBPF, Pin, Valgrind) - Slides - Handouts.