Awesome
<img src="https://github.com/user-attachments/assets/46a5c546-7e9b-42c7-87f4-bc8defe674e0" width=250 />DuckDB pprof
Extension
This experimental extension adds pprof profiling and export features to DuckDB
Build
make configure
make debug
Test
D LOAD './build/debug/quack_pprof.duckdb_extension';
D SELECT * FROM trace_start();
┌──────────────────────────────────────────────────┐
│ status │
│ varchar │
├──────────────────────────────────────────────────┤
│ Profiling started with signal-safe configuration │
└──────────────────────────────────────────────────┘
--- Perform some actions...
D SELECT version();
┌─────────────┐
│ "version"() │
│ varchar │
├─────────────┤
│ v1.1.3 │
└─────────────┘
--- Check for results
D SELECT * FROM trace_results();
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ stack_trace │
│ varchar │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ FRAME: backtrace::backtrace::libunwind::trace -> backtrace::backtrace::trace_unsynchronized -> FRAME: <pprof::backtrace::backtrace_rs::Trac… │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
--- Dump to pprof protobuf file
D SELECT * FROM trace_stop('duckdb.pprof');
┌───────────────────────────────┐
│ status │
│ varchar │
├───────────────────────────────┤
│ Profile saved to duckdb.pprof │
└───────────────────────────────┘