Collection of examples and links that uses different profiling tools to show memory usage and timings.
Shows how to use the profiler and what the output looks like. Includes only tools that are maintained.
awesome-profiling: Great list of profiling tools, though includes some tools for Python that are no longer maintained.
- Game Development: C#, Unity, Godot
- Node.js: JavaScript, TypeScript
- Python: examples using cProfile, guppy3, psutil, memray, pyinstrument, tracemalloc, yappi, filprofiler, DTrace
- gprof: GNU Profiler
- Tracy Profiler: supports C, C++, Lua, Python with 3rd party bindings for Rust, Zig, C#
- valgrind
- memcheck: memory error detection
- cachegrind: CPU cache profiling
- callgrind is cachegrind with a call graph and branch prediction profiler
- massif for heap profiling
- Apple Instruments
- VisualVM: Java profiling tool
- Java Flight Recorder and JDK Mission Control: Java profiling tool
- Chrome DevTools, JavaScript in the Web Browser
- NVIDIA Visual Profiler
- NVIDIA Nsight Systems
- NVIDIA Nsight Compute
- Android GPU Inspector (AGI)
- Metal debugger
- AMD uProf
- Intel VTune Profiler
- "BPF Performance Tools", Brendan Gregg
- "Systems Performance: Enterprise and the Cloud, 2nd Edition", Brendan Gregg
- "All my favorite tracing tools: eBPF, QEMU, Perfetto, new ones I built and more", Tristan Hume
- "Flame Graphs: The future of performance analysis", Brendan Gregg
- "Flame Graphs", Brendan Gregg
- "Sampling v. tracing", Dan Luu
- Memory and CPU profiling, "The Hacker's Guide to Scaling Python", Julien Danjou
- ebpf-apps: sample apps for eBPF for C, C++, Python, Go, and Rust.