Object Introspection: A C++ Memory Profiler
Talkat CppCon 2023 · on Wednesday, 2023-10-04· at 15:15· Adams, 6700 North Gaylord Rockies Boulevard·
summary
Open source Linux tool reconstructs C++ types from DWARF debug data, generates measurement routines with LLVM JIT, and either injects them into a live process via ptrace-style trampolines or exposes in-process APIs with no code modification. It reports exact per-field and container occupancy, shows short-string/SSO and small-vector waste, and surfaces real wins — e.g. targeted changes that save about 1.5 GB memory saved and reduce P95 RSS by ~10%. It currently targets 64-bit x86 and works at production scale.
AI-written summary · about
chapters (8)
- 0:00Object Introspection intro
- 1:04Why object memory introspection matters
- 10:35Reconstructing objects
- 20:50Measuring memory with OI library
- 28:18Live profiling with OID debugger
- 36:46Memory optimization use cases
- 46:10OI limitations and future
- 51:31Q&A
related talks
44mObservability Tools C++: Beyond GDB and printf - Tools to Understand the Behavior of Your Program
45mPerf tools updates and beyond
36mDeveloping Continuous eBPF Profiler to look Beneath the Kernel to Beyond the Clouds
37mAdvanced Performance Profiling Using Perf Tools
26mProfiling Mastery: Decode Your Data and Elevate Observability
53mSource Instrumentation for Monitoring C++ in Production
44mThink Outside the VM: Unobtrusive Performance Measurement
22mDWARFs and ELFs on the Cloud - eBPF Profiling Adventures in Observability at...
