1.3 KiB
Benchmarking
Palladium Core has an internal benchmarking framework, with benchmarks for cryptographic algorithms (e.g. SHA1, SHA256, SHA512, RIPEMD160, Poly1305, ChaCha20), rolling bloom filter, coins selection, thread queue, wallet balance.
Running
For benchmarks purposes you only need to compile palladium_bench. Beware of configuring without --enable-debug as this would impact
benchmarking by unlatching log printers and lock analysis.
make -C src palladium_bench
After compiling palladium-core, the benchmarks can be run with:
src/bench/bench_palladium
The output will look similar to:
# Benchmark, evals, iterations, total, min, max, median
AssembleBlock, 5, 700, 1.79954, 0.000510913, 0.000517018, 0.000514497
...
Help
src/bench/bench_palladium --help
To print options like scaling factor or per-benchmark filter.
Notes
More benchmarks are needed for, in no particular order:
- Script Validation
- Coins database
- Memory pool
- Cuckoo Cache
- P2P throughput
Going Further
To monitor Palladium Core performance more in depth (like reindex or IBD): https://github.com/chaincodelabs/palladiumperf
To generate Flame Graphs for Palladium Core: https://github.com/eklitzke/palladium/blob/flamegraphs/doc/flamegraphs.md