pwndbg/profiling/benchmark_vis_heap_chunks
Disconnect3d 2f03a901e7
Optimize vis_heap_chunks command (#1678)
* Optimize vis_heap_chunks command

This commit optimizes the vis_heap_chunks command by:
1) precalculating bin labels instead of computing them on demand for each chunk
2) calling pwndbg.gdblib.memory.read once instead of twice in a hot loop

For `vis 2000` command ran when debugging python3 shell, the first change 
cut down the execution time from almost 20s to 5s.

Another benchmark, for both 1) and 2) changes showed 19.28s->4.14s timing.

The benchmark done is included in this commit in
profiling/benchmark_vis_heap_chunks/ so that it can be reproduced e.g.
to optimize the function further or to reproduce my results.
2023-05-03 00:24:17 +02:00
..
README.md Optimize vis_heap_chunks command (#1678) 2023-05-03 00:24:17 +02:00
bench.sh Optimize vis_heap_chunks command (#1678) 2023-05-03 00:24:17 +02:00
gdbscript.py Optimize vis_heap_chunks command (#1678) 2023-05-03 00:24:17 +02:00

README.md

This benchmark was used to investigate performance problems with the vis_heap_chunks command described in https://github.com/pwndbg/pwndbg/issues/1675