This repository holds benchmarking code for various x86/x86-64 disassembler libraries.
NixOS, Linux 6.0.10, GCC 11, rustc 1.67.0-nightly, i7-12700K
Windows:
REM Start "x64 Native Tools Command Prompt for VS 2019"
REM Start git bash:
"C:\Program Files\Git\bin\bash.exe"
Windows/Linux/macOS:
git clone --recursive 'https://github.com/athre0z/disas-bench.git'
cd disas-bench.git
./make-all.sh
# Windows: python
python3 -mvenv venv
# Windows: source venv/Scripts/activate
source venv/bin/activate
pip install -r requirements.txt
# Optional args: <code-offset> <code-len> <filename> [loop-count]
# macOS/Windows: python bench.py
LD_LIBRARY_PATH=$(pwd)/bench/distorm python bench.py
The optional bench.py
arguments are:
<code-offset>
= offset of the code section (in decimal or 0x hex)<code-len>
= length of the code section (in decimal or 0x hex)<filename>
= 64-bit x86 binary file to decode and format[loop-count]
= optional loop count. Total number of bytes decoded and formatted is<code-len> * [loop-count]
If you feel like the benchmark for a lib doesn't drive it to its full potential or treats it unfairly, I'd be happy to accept PRs with improvements!