Skip to content

Instantly share code, notes, and snippets.

@jonatack
Last active March 1, 2020 15:18
Show Gist options
  • Select an option

  • Save jonatack/99bdd4344dbb6b7faeacc77753af81dc to your computer and use it in GitHub Desktop.

Select an option

Save jonatack/99bdd4344dbb6b7faeacc77753af81dc to your computer and use it in GitHub Desktop.
Bitcoin Core PR 18011 nanobench output
bitcoin (pr/18011)$ ./src/bench/bench_bitcoin
Warning, results might be unstable:
* NDEBUG not defined, assert() macros are evaluated
* CPU frequency scaling enabled: CPU 0 between 400.0 and 3,100.0 MHz
* CPU governor is 'powersave' but should be 'performance'
* Turbo is enabled, CPU frequency will fluctuate
Recommendations
* Make sure you compile for Release
* Use 'pyperf system tune' before benchmarking. See https://github.com/vstinner/pyperf
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 639,345.00 | 1,564.10 | 2.9% | 0.01 | `AssembleBlock`
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 94.45 | 10,587,262.20 | 4.8% | 0.00 | `Base58CheckEncode`
| 27.42 | 36,470,903.73 | 1.2% | 0.00 | `Base58Decode`
| 78.49 | 12,741,107.77 | 0.2% | 0.00 | `Base58Encode`
| 17.06 | 58,632,840.03 | 1.9% | 0.00 | `Bech32Decode`
| 46.48 | 21,515,819.36 | 2.0% | 0.00 | `Bech32Encode`
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 485.46 | 2,059,906.12 | 11.7% | 0.00 | :wavy_dash: `BenchLockedPool` (Unstable with ~53.7 iters. Increase `minEpochIterations` to e.g. 537)
| 12.82 | 77,974,967.31 | 1.1% | 0.00 | `BenchTimeDeprecated`
| 130.72 | 7,649,839.43 | 1.2% | 0.00 | `BenchTimeMillis`
| 1,042.09 | 959,612.82 | 11.1% | 0.00 | :wavy_dash: `BenchTimeMillisSys` (Unstable with ~22.4 iters. Increase `minEpochIterations` to e.g. 224)
| 20.36 | 49,110,515.83 | 10.9% | 0.00 | :wavy_dash: `BenchTimeMock` (Unstable with ~751.6 iters. Increase `minEpochIterations` to e.g. 7516)
| 97,453,470.00 | 10.26 | 1.5% | 1.10 | `BlockToJsonVerbose`
| 1,609,896.00 | 621.16 | 24.3% | 0.02 | :wavy_dash: `BnBExhaustion` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| ns/job | job/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 302.62 | 3,304,461.10 | 5.8% | 0.01 | :wavy_dash: `CCheckQueueSpeedPrevectorJob` (Unstable with ~11.2 iters. Increase `minEpochIterations` to e.g. 112)
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 647.31 | 1,544,865.47 | 0.4% | 0.00 | `CCoinsCaching`
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 4.83 | 207,098,101.29 | 62.5% | 0.08 | :wavy_dash: `CHACHA20_1MB` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 7.87 | 127,022,900.76 | 0.1% | 0.00 | `CHACHA20_256BYTES`
| 4.13 | 242,226,345.08 | 0.3% | 0.00 | `CHACHA20_64BYTES`
| 7.63 | 131,081,388.70 | 23.8% | 0.10 | :wavy_dash: `CHACHA20_POLY1305_AEAD_1MB_ENCRYPT_DECRYPT` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 3.43 | 291,790,417.00 | 8.4% | 0.04 | :wavy_dash: `CHACHA20_POLY1305_AEAD_1MB_ONLY_ENCRYPT` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 8.62 | 116,023,237.61 | 0.5% | 0.00 | `CHACHA20_POLY1305_AEAD_256BYTES_ENCRYPT_DECRYPT`
| 6.22 | 160,824,224.15 | 9.9% | 0.00 | :wavy_dash: `CHACHA20_POLY1305_AEAD_256BYTES_ONLY_ENCRYPT` (Unstable with ~12.5 iters. Increase `minEpochIterations` to e.g. 125)
| 16.55 | 60,414,529.04 | 0.6% | 0.00 | `CHACHA20_POLY1305_AEAD_64BYTES_ENCRYPT_DECRYPT`
| 8.64 | 115,768,002.16 | 0.4% | 0.00 | `CHACHA20_POLY1305_AEAD_64BYTES_ONLY_ENCRYPT`
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 420,340.00 | 2,379.03 | 28.1% | 0.00 | :wavy_dash: `CoinSelection` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 373,459,820.00 | 2.68 | 4.8% | 4.30 | `ComplexMemPool`
| ns/elem | elem/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 274.11 | 3,648,203.72 | 20.9% | 0.03 | :wavy_dash: `ConstructGCSFilter` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| ns/block | block/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 7,579,192.00 | 131.94 | 2.7% | 0.09 | `DeserializeAndCheckBlockTest`
| 7,172,987.00 | 139.41 | 6.1% | 0.08 | :wavy_dash: `DeserializeBlockTest` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 20,508,444.00 | 48.76 | 6.1% | 0.21 | :wavy_dash: `DuplicateInputs` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 1.75 | 571,885,935.52 | 0.2% | 0.00 | `FastRandom_1bit`
| 16.64 | 60,096,254.45 | 10.4% | 0.00 | :wavy_dash: `FastRandom_32bit` (Unstable with ~1,505.7 iters. Increase `minEpochIterations` to e.g. 15057)
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 4.70 | 212,772,614.81 | 9.8% | 0.06 | :wavy_dash: `HASH_1MB` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 6.00 | 166,539,109.14 | 0.1% | 0.00 | `HASH_256BYTES`
| 24.22 | 41,293,652.71 | 0.7% | 0.00 | `HASH_64BYTES`
| ns/elem | elem/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 35,702.00 | 28,009.64 | 3.7% | 0.00 | `MatchGCSFilter`
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 33,052.00 | 30,255.36 | 5.0% | 0.00 | `MempoolEviction`
| ns/leaf | leaf/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 273.34 | 3,658,389.87 | 3.3% | 0.03 | `MerkleRoot`
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 0.98 | 1,019,753,681.93 | 7.7% | 0.01 | :wavy_dash: `POLY1305_1MB` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 2.96 | 337,852,429.51 | 0.3% | 0.00 | `POLY1305_256BYTES`
| 4.28 | 233,789,954.34 | 0.6% | 0.00 | `POLY1305_64BYTES`
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 63.22 | 15,816,703.62 | 1.5% | 0.00 | `PrevectorClearNontrivial`
| 20.17 | 49,570,682.48 | 0.1% | 0.00 | `PrevectorClearTrivial`
| 382.68 | 2,613,156.20 | 2.7% | 0.00 | `PrevectorDeserializeNontrivial`
| 42.02 | 23,797,625.00 | 7.4% | 0.00 | :wavy_dash: `PrevectorDeserializeTrivial` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 62.48 | 16,005,280.09 | 2.8% | 0.00 | `PrevectorDestructorNontrivial`
| 29.48 | 33,918,088.50 | 16.4% | 0.00 | :wavy_dash: `PrevectorDestructorTrivial` (Unstable with ~384.3 iters. Increase `minEpochIterations` to e.g. 3843)
| 7.74 | 129,263,511.62 | 0.2% | 0.00 | `PrevectorResizeNontrivial`
| 4.48 | 223,220,124.69 | 10.7% | 0.00 | :wavy_dash: `PrevectorResizeTrivial` (Unstable with ~1,295.0 iters. Increase `minEpochIterations` to e.g. 12950)
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 3.31 | 302,554,101.21 | 6.5% | 0.04 | :wavy_dash: `RIPEMD160` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 3,232.00 | 309,405.94 | 17.0% | 0.00 | :wavy_dash: `RollingBloom` (Unstable with ~6.1 iters. Increase `minEpochIterations` to e.g. 61)
| 98,857.00 | 10,115.62 | 16.2% | 0.00 | :wavy_dash: `RollingBloomReset` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 17,601,043.00 | 56.81 | 10.7% | 0.19 | :wavy_dash: `RpcMempool` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| ns/byte | byte/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 2.22 | 451,204,286.80 | 3.1% | 0.02 | `SHA1`
| 4.00 | 250,133,070.79 | 8.7% | 0.06 | :wavy_dash: `SHA256` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 2.32 | 430,235,153.55 | 0.0% | 0.00 | `SHA256D64_1024`
| 8.29 | 120,603,015.08 | 0.1% | 0.00 | `SHA256_32b`
| 3.59 | 278,181,836.90 | 2.2% | 0.04 | `SHA512`
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 32.68 | 30,595,871.93 | 0.1% | 0.00 | `SipHash_32b`
| 22.79 | 43,877,551.02 | 1.9% | 0.00 | `Trig`
| 538,900.00 | 1,855.63 | 19.7% | 0.01 | :wavy_dash: `VerifyScriptBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 40,833.00 | 24,490.00 | 0.6% | 0.00 | `WalletBalanceClean`
| 551,086.00 | 1,814.60 | 5.6% | 0.01 | :wavy_dash: `WalletBalanceDirty` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
| 20,795.00 | 48,088.48 | 0.2% | 0.00 | `WalletBalanceMine`
| 40,902.00 | 24,448.68 | 0.4% | 0.00 | `WalletBalanceWatch`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment