49 lines
1.3 KiB
Markdown
49 lines
1.3 KiB
Markdown
|
|
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
|