Install libc debug symbols for codspeed benchmarks#8384
Conversation
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Merging this PR will degrade performance by 17.99%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_bool_canonical_into[(1000, 10)] |
20.4 µs | 35.4 µs | -42.42% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
176.8 µs | 212.9 µs | -16.98% |
| ❌ | Simulation | chunked_varbinview_canonical_into[(100, 100)] |
272.7 µs | 307.9 µs | -11.41% |
| ❌ | Simulation | encode_varbin[(1000, 4)] |
142.9 µs | 159.9 µs | -10.61% |
| ❌ | Simulation | encode_varbin[(1000, 8)] |
143.6 µs | 160.6 µs | -10.61% |
| ❌ | Simulation | encode_varbin[(1000, 32)] |
148.5 µs | 165.2 µs | -10.09% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing adamg/codspeed-libc-dbg (b4882ac) with develop (c6a0b7b)
Footnotes
-
10 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Summary
Install libc's debug symbols for codspeed runs, to get better symbolication for some of the code we end up calling.
For example, for the noisy

chunked_bool_canonical_intowe currently get (note the unknown spans on the left):With this change we get (note all the new blue spans, other colors are just noise):

They include both memory allocation function but often more useful to us - SIMD instructions! On this PR's runs with a quick look I've found:
_int_mallocmalloc_consolidate__memset_avx2_unaligned_erms__memcpy_avx_unaligned_erms__memcmp_avx2_movbetcache_get_n