You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
litecoin/doc/benchmarking.md

1.5 KiB

Benchmarking

Litecoin 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 litecoin_bench. Beware of configuring without --enable-debug as this would impact benchmarking by unlatching log printers and lock analysis.

make -C src litecoin_bench

After compiling litecoin-core, the benchmarks can be run with:

src/bench/bench_litecoin

The output will look similar to:

|             ns/byte |              byte/s | error % | benchmark
|--------------------:|--------------------:|--------:|:----------------------------------------------
|               64.13 |       15,592,356.01 |    0.1% | `Base58CheckEncode`
|               24.56 |       40,722,672.68 |    0.2% | `Base58Decode`
...

Help

src/bench/bench_litcoin --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 Litecoin Core performance more in depth (like reindex or IBD): https://github.com/chaincodelabs/bitcoinperf

To generate Flame Graphs for Litecoin Core: https://github.com/eklitzke/bitcoin/blob/flamegraphs/doc/flamegraphs.md