build: Use clang-cl to build on Windows natively #31507

pull hebasto wants to merge 4 commits into bitcoin:master from hebasto:241216-clang-cl changing 5 files +41 −19
  1. hebasto commented at 10:58 am on December 16, 2024: member

    Building on Windows using Clang instead of the MS compiler may be beneficial, considering the issues with the latter, as outlined in #31456:

    • non-optimized codegen: [build: remove need to test for endianness #29852 (comment)](/bitcoin-bitcoin/29852/#issuecomment-2049803970)

    • compile failure: [MSVC 17.12.0 internal compiler error #31303](https://github.com/bitcoin/bitcoin/issues/31303)

    • legal, but brittle stdlib: [util: Drop boost posix_time in ParseISO8601DateTime #31391 (comment)](/bitcoin-bitcoin/31391/#issuecomment-2510762011)

    • unspecified issue: [refactor: Check translatable format strings at compile-time #31061 (comment)](/bitcoin-bitcoin/31061/#issuecomment-2531244463)

    Additionally, MSVC does not support inline assembly on the ARM and x64 processors.

    So this PR:

    1. Closes #31456.
    2. Could be an alternative to #24773.

    Additionally, clang-cl:

    1. Produces binaries with better performance. For example:
    MSVC, block/s clang-cl, block/s benchmark
    7.40 11.52 ConnectBlockAllEcdsa
    7.32 11.81 ConnectBlockAllSchnorr
    7.38 11.45 ConnectBlockMixedEcdsaSchnorr
    91.86 143.12 DeserializeAndCheckBlockTest
    121.46 189.04 DeserializeBlockTest
    1. Builds faster on the CI:
  2. hebasto added the label Windows on Dec 16, 2024
  3. hebasto added the label Build system on Dec 16, 2024
  4. DrahtBot commented at 10:58 am on December 16, 2024: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31507.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    No conflicts as of last run.

  5. DrahtBot added the label CI failed on Dec 16, 2024
  6. DrahtBot commented at 12:00 pm on December 16, 2024: contributor

    🚧 At least one of the CI tasks failed. Debug: https://github.com/bitcoin/bitcoin/runs/34465651629

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

  7. maflcko commented at 12:52 pm on December 16, 2024: member

    Seems fine to add this, because it is easy to remove and can increase the build compatibly in the meantime.

    Also, it allows to evaluate the codegen, which could be substantially better than msvc, or detect more msvc bugs.

    If there are enough benefits to clang-cl, the docs could be updated to use it and msvc could be dropped from the docs and possibly CI.

  8. fanquake commented at 12:54 pm on December 16, 2024: member

    Also, it allows to evaluate the codegen, which could be substantially better than msvc, or detect more msvc bugs.

    Does it? My read of the docs was that clang just tries to internally work around all the MSVC bugs, so it seems like it will just continue to “hide” issues?

  9. hebasto commented at 1:33 pm on December 16, 2024: member

    From #31456#issue-2729797132:

    MSVC has many issues, for example:

    Added two commits that enable compiling fuzz/utxo_snapshot.cpp with clang-cl and switch “Win64 native, fuzz” job to clang-cl.

  10. in cmake/module/TryAppendCXXFlags.cmake:122 in 49cfcaf254 outdated
    119@@ -120,7 +120,11 @@ function(try_append_cxx_flags flags)
    120 endfunction()
    121 
    122 if(MSVC)
    


    theuni commented at 7:44 pm on December 16, 2024:
    Can’t the if(MSVC) go away and we just rely on the CMAKE_CXX_COMPILER_ID test?

    hebasto commented at 12:08 pm on December 17, 2024:
    In this case, I think we do want to check MSVC, as it separates MSVC specific syntax /WX from GCC syntax -Werror.
  11. theuni commented at 7:46 pm on December 16, 2024: member
    At a high level.. seems to me we want to avoid doing if(MSVC) as much as possible and instead check against the compiler id, no? Except for the cases where we REALLY mean MSVC.
  12. theuni commented at 8:02 pm on December 16, 2024: member
    Hmm, actually, it seems like maybe CMAKE_CXX_COMPILER_FRONTEND_VARIANT is what we should be testing against?
  13. hebasto force-pushed on Dec 17, 2024
  14. fanquake commented at 11:49 am on December 17, 2024: member

    < to be added >

    It’d be good if this could actually be filled in, so it’s clear what the goals are / what’s trying to be acheived here.

  15. hebasto commented at 12:11 pm on December 17, 2024: member

    Hmm, actually, it seems like maybe CMAKE_CXX_COMPILER_FRONTEND_VARIANT is what we should be testing against?

    It doesn’t seem reliable, as it might not be set at all for CMake versions < 3.26.

  16. DrahtBot added the label Needs rebase on Jan 27, 2025
  17. hebasto force-pushed on Mar 10, 2025
  18. hebasto commented at 5:47 pm on March 10, 2025: member
    Rebased on #32028.
  19. hebasto force-pushed on Mar 10, 2025
  20. DrahtBot removed the label CI failed on Mar 10, 2025
  21. DrahtBot removed the label Needs rebase on Mar 10, 2025
  22. hebasto commented at 3:28 pm on March 11, 2025: member

    < to be added >

    It’d be good if this could actually be filled in, so it’s clear what the goals are / what’s trying to be acheived here.

    Done.

  23. hebasto force-pushed on Mar 11, 2025
  24. in cmake/leveldb.cmake:98 in 80e7e80a6d outdated
     96     IF_CHECK_PASSED "-Wno-conditional-uninitialized"
     97   )
     98   try_append_cxx_flags("-Wsuggest-override" TARGET nowarn_leveldb_interface SKIP_LINK
     99     IF_CHECK_PASSED "-Wno-suggest-override"
    100   )
    101+  try_append_cxx_flags("-Wunused-member-function" TARGET nowarn_leveldb_interface SKIP_LINK
    


    fanquake commented at 3:39 am on March 12, 2025:
    In 76659d92f1925f561736ffe0f070ed0b9fef8d23: It’d be good if commits like this could contain actual details, rather than just “Adjust diagnostic flags”; especially given this is touching non-Windows code. Also, any reason to not fix the issues in leveldb, rather than adding more suppressions?

    hebasto commented at 11:58 am on May 17, 2025:

    More details have been added to the commit message.

    Also, any reason to not fix the issues in leveldb, rather than adding more suppressions?

    I’ll consider this option.


    hebasto commented at 10:10 pm on May 17, 2025:

    Also, any reason to not fix the issues in leveldb, rather than adding more suppressions?

    I’ll consider this option.

    Please see https://github.com/bitcoin-core/leveldb-subtree/pull/53.

  25. DrahtBot added the label Needs rebase on Mar 14, 2025
  26. hebasto force-pushed on Mar 17, 2025
  27. DrahtBot removed the label Needs rebase on Mar 17, 2025
  28. DrahtBot added the label Needs rebase on Mar 31, 2025
  29. hebasto force-pushed on May 13, 2025
  30. fanquake commented at 11:27 am on May 13, 2025: member
    0   test_bitcoin.vcxproj -> D:\a\bitcoin\bitcoin\build\bin\Release\test_bitcoin.exe
    1lld-link : warning : found both wWinMain and WinMain; using latter [D:\a\bitcoin\bitcoin\build\src\qt\bitcoin-qt.vcxproj]
    2lld-link : error : undefined symbol: __declspec(dllimport) PathRemoveFileSpecW [D:\a\bitcoin\bitcoin\build\src\qt\bitcoin-qt.vcxproj]
    3  >>> referenced by bitcoinqt.lib(guiutil.obj):(bool __cdecl GUIUtil::SetStartOnSystemStartup(bool))
    4lld-link : error : undefined symbol: __declspec(dllimport) PathRemoveFileSpecW [D:\a\bitcoin\bitcoin\build\src\qt\test\test_bitcoin-qt.vcxproj]
    5  >>> referenced by bitcoinqt.lib(guiutil.obj):(bool __cdecl GUIUtil::SetStartOnSystemStartup(bool))
    
    0  C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\shared\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'
    1lld-link : error : undefined symbol: __divti3 [D:\a\bitcoin\bitcoin\build\src\test\fuzz\fuzz.vcxproj]
    2  >>> referenced by fuzz.dir\Release\feefrac.obj:(void __cdecl feefrac_mul_div_fuzz_target(class std::span<unsigned char const, -1>))
    3  >>> referenced by fuzz.dir\Release\feefrac.obj:(?Div@FeeFrac@@SA_J_LH_N@Z)
    
  31. DrahtBot removed the label Needs rebase on May 13, 2025
  32. fanquake referenced this in commit 8309a9747a on May 13, 2025
  33. hebasto force-pushed on May 13, 2025
  34. hebasto force-pushed on May 15, 2025
  35. hebasto renamed this:
    [POC] build: Use clang-cl to build on Windows natively
    build: Use clang-cl to build on Windows natively
    on May 15, 2025
  36. DrahtBot added the label Needs rebase on May 16, 2025
  37. hebasto force-pushed on May 16, 2025
  38. DrahtBot removed the label Needs rebase on May 16, 2025
  39. DrahtBot added the label Needs rebase on May 17, 2025
  40. hebasto force-pushed on May 17, 2025
  41. hebasto marked this as ready for review on May 17, 2025
  42. DrahtBot removed the label Needs rebase on May 17, 2025
  43. hebasto force-pushed on May 18, 2025
  44. fanquake commented at 9:11 am on May 21, 2025: member
    Reading the description, I’m still not really clear on the goals here. It seems like this is just adding even more ways to compile for Windows, which we have to add more CI / and more work arounds for, but doesn’t actually improve the Windows binaries we are shipping to end users in any way. This might make more sense if we were actually going to switch to shipping Windows binaries using Clang.
  45. hebasto commented at 3:05 pm on October 16, 2025: member

    Reading the description, I’m still not really clear on the goals here. It seems like this is just adding even more ways to compile for Windows, which we have to add more CI / and more work arounds for, but doesn’t actually improve the Windows binaries we are shipping to end users in any way.

    Building Bitcoin Core from source has always been considered one of the best practices. Not supporting an effective compiler, such as clang-cl on Windows, prevents users from achieving optimal performance, which negatively affects their experience.

    If adding one more CI job is an issue for the current framework, we could consider dropping MSVC support instead. And if another compiler exposes more source-level workarounds, that’s an indication the code could be made more portable.

    This might make more sense if we were actually going to switch to shipping Windows binaries using Clang.

    That’s already on the horizon.

  46. hebasto force-pushed on Oct 16, 2025
  47. hebasto commented at 3:12 pm on October 16, 2025: member
    Rebased to refresh the CI.
  48. fanquake commented at 3:21 pm on October 16, 2025: member

    prevents users from achieving optimal performance,

    Clang on Windows produces better performing binaries than MSVC?

  49. hebasto commented at 3:24 pm on October 16, 2025: member

    prevents users from achieving optimal performance,

    Clang on Windows produces better performing binaries than MSVC?

    Yes. I forgot to put this link into my previous comment: https://github.com/bitcoin-core/secp256k1/pull/1681.

  50. fanquake commented at 3:26 pm on October 16, 2025: member

    Yes. I forgot to put this link into my previous comment: https://github.com/bitcoin-core/secp256k1/pull/1681.

    Have you seen the same from actually running Core, or it’s benchmarks, or an IBD?

  51. hebasto commented at 3:34 pm on October 16, 2025: member

    Yes. I forgot to put this link into my previous comment: bitcoin-core/secp256k1#1681.

    Have you seen the same from actually running Core, or it’s benchmarks, or an IBD?

    I’ll refresh my benchmarks and post them shortly.

  52. fanquake commented at 3:36 pm on October 16, 2025: member
    0
    1D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1531,33): warning : variable 'ext_flag' may be uninitialized when used here [-Wconditional-uninitialized] [D:\a\bitcoin\bitcoin\build\src\bitcoin_consensus.vcxproj]
    2  D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1733,10): note: in instantiation of function template specialization 'SignatureHashSchnorr<CTransaction>' requested here
    3  D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1481,21): note: initialize the variable 'ext_flag' to silence this warning
    4D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1531,33): warning : variable 'ext_flag' may be uninitialized when used here [-Wconditional-uninitialized] [D:\a\bitcoin\bitcoin\build\src\bitcoin_consensus.vcxproj]
    5  D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1733,10): note: in instantiation of function template specialization 'SignatureHashSchnorr<CMutableTransaction>' requested here
    6  D:\a\bitcoin\bitcoin\src\script\interpreter.cpp(1481,21): note: initialize the variable 'ext_flag' to silence this warning
    7  bitcoin_clientversion.vcxproj -> D:\a\bitcoin\bitcoin\build\lib\Release\bitcoin_clientversion.lib
    
    0 D:\a\bitcoin\bitcoin\src\util/subprocess.h(759,10): error : private field 'parent_' is not used [-Werror,-Wunused-private-field] [D:\a\bitcoin\bitcoin\build\src\bitcoin_common.vcxproj]
    1D:\a\bitcoin\bitcoin\src\util/subprocess.h(760,7): error : private field 'err_wr_pipe_' is not used [-Werror,-Wunused-private-field] [D:\a\bitcoin\bitcoin\build\src\bitcoin_common.vcxproj]
    2D:\a\bitcoin\bitcoin\src\util/subprocess.h(1038,7): error : private field 'child_pid_' is not used [-Werror,-Wunused-private-field] [D:\a\bitcoin\bitcoin\build\src\bitcoin_common.vcxproj]
    
  53. hebasto force-pushed on Oct 16, 2025
  54. hebasto commented at 5:58 pm on October 25, 2025: member

    Yes. I forgot to put this link into my previous comment: bitcoin-core/secp256k1#1681.

    Have you seen the same from actually running Core, or it’s benchmarks, or an IBD?

    I’ll refresh my benchmarks and post them shortly.

    Below are benchmarks on my Windows machine:

      0|               ns/op |                op/s |    err% |     total | benchmark
      1|--------------------:|--------------------:|--------:|----------:|:----------
      2|        1,179,325.00 |              847.94 |    6.9% |      0.15 | :wavy_dash: `AddAndRemoveDisconnectedBlockTransactions10` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)
      3|        1,260,020.00 |              793.64 |    5.0% |      0.16 | `AddAndRemoveDisconnectedBlockTransactions90`
      4|        1,455,309.09 |              687.14 |    2.4% |      0.18 | `AddAndRemoveDisconnectedBlockTransactionsAll`
      5|       71,612,900.00 |               13.96 |    1.1% |      0.79 | `AddrManAdd`
      6|      187,231,800.00 |                5.34 |    0.5% |      2.07 | `AddrManAddThenGood`
      7|          267,166.67 |            3,742.98 |    2.5% |      0.01 | `AddrManGetAddr`
      8|              370.42 |        2,699,601.97 |    9.5% |      0.01 | :wavy_dash: `AddrManSelect` (Unstable with ~2,676.5 iters. Increase `minEpochIterations` to e.g. 26765)
      9|        1,524,112.50 |              656.12 |   57.9% |      0.03 | :wavy_dash: `AddrManSelectByNetwork` (Unstable with ~1.6 iters. Increase `minEpochIterations` to e.g. 16)
     10|          179,040.00 |            5,585.34 |   32.2% |      0.01 | :wavy_dash: `AddrManSelectFromAlmostEmpty` (Unstable with ~5.2 iters. Increase `minEpochIterations` to e.g. 52)
     11|          698,000.00 |            1,432.66 |    1.2% |      0.01 | `AssembleBlock`
     12
     13|             ns/ecdh |              ecdh/s |    err% |     total | benchmark
     14|--------------------:|--------------------:|--------:|----------:|:----------
     15|           72,300.00 |           13,831.26 |    0.3% |      0.01 | `BIP324_ECDH`
     16
     17|             ns/byte |              byte/s |    err% |     total | benchmark
     18|--------------------:|--------------------:|--------:|----------:|:----------
     19|              118.70 |        8,424,277.24 |    0.2% |      0.01 | `Base58CheckEncode`
     20|               28.09 |       35,600,546.52 |    0.5% |      0.01 | `Base58Decode`
     21|               75.57 |       13,232,799.25 |    1.8% |      0.01 | `Base58Encode`
     22|               12.29 |       81,346,439.17 |    1.5% |      0.01 | `Bech32Decode`
     23|               18.92 |       52,852,519.65 |    0.5% |      0.01 | `Bech32Encode`
     24
     25|               ns/op |                op/s |    err% |     total | benchmark
     26|--------------------:|--------------------:|--------:|----------:|:----------
     27|              204.06 |        4,900,466.95 |    6.4% |      0.01 | :wavy_dash: `BenchLockedPool` (Unstable with ~4,444.4 iters. Increase `minEpochIterations` to e.g. 44444)
     28
     29|             ns/byte |              byte/s |    err% |     total | benchmark
     30|--------------------:|--------------------:|--------:|----------:|:----------
     31|                2.60 |      384,098,329.17 |    2.6% |      0.03 | `BenchRIPEMD160`
     32
     33|               ns/op |                op/s |    err% |     total | benchmark
     34|--------------------:|--------------------:|--------:|----------:|:----------
     35|               28.54 |       35,043,209.88 |    1.0% |      0.01 | `BenchTimeDeprecated`
     36|               27.26 |       36,688,102.89 |    0.7% |      0.01 | `BenchTimeMillis`
     37|               20.72 |       48,253,935.59 |    0.4% |      0.01 | `BenchTimeMillisSys`
     38|                2.17 |      460,814,656.01 |    0.4% |      0.01 | `BenchTimeMock`
     39|    1,162,030,600.00 |                0.86 |    0.1% |     12.83 | `BlockAssemblerAddPackageTxns`
     40|        2,600,400.00 |              384.56 |    0.2% |      0.03 | `BlockEncodingLargeExtra`
     41|        2,357,300.00 |              424.21 |    0.3% |      0.03 | `BlockEncodingNoExtra`
     42|        2,368,000.00 |              422.30 |    0.5% |      0.03 | `BlockEncodingStdExtra`
     43|    5,480,110,960.00 |                0.18 |    0.5% |    326.48 | `BlockFilterIndexSync`
     44|       45,776,800.00 |               21.85 |    0.6% |      0.50 | `BlockToJsonVerboseWrite`
     45|          484,450.00 |            2,064.20 |    1.1% |      0.01 | `BlockToJsonVerbosity1`
     46|       93,670,700.00 |               10.68 |    0.6% |      1.05 | `BlockToJsonVerbosity2`
     47|       97,989,500.00 |               10.21 |    1.3% |      1.09 | `BlockToJsonVerbosity3`
     48|          724,300.00 |            1,380.64 |    5.6% |      0.01 | :wavy_dash: `BnBExhaustion` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
     49
     50|              ns/job |               job/s |    err% |     total | benchmark
     51|--------------------:|--------------------:|--------:|----------:|:----------
     52|              247.58 |        4,039,030.63 |   13.1% |      0.09 | :wavy_dash: `CCheckQueueSpeedPrevectorJob` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)
     53
     54|               ns/op |                op/s |    err% |     total | benchmark
     55|--------------------:|--------------------:|--------:|----------:|:----------
     56|              851.71 |        1,174,107.66 |    3.4% |      0.01 | `CCoinsCaching`
     57
     58|             ns/byte |              byte/s |    err% |     total | benchmark
     59|--------------------:|--------------------:|--------:|----------:|:----------
     60|                1.88 |      531,597,465.15 |    0.7% |      0.02 | `CHACHA20_1MB`
     61|                1.93 |      518,358,837.88 |    0.9% |      0.01 | `CHACHA20_256BYTES`
     62|                2.14 |      468,040,540.54 |    2.8% |      0.01 | `CHACHA20_64BYTES`
     63
     64|               ns/op |                op/s |    err% |     total | benchmark
     65|--------------------:|--------------------:|--------:|----------:|:----------
     66|          101,433.33 |            9,858.69 |    0.9% |      0.01 | `CheckBlockIndex`
     67|       18,427,900.00 |               54.27 |    0.9% |      0.21 | `CoinSelection`
     68|      293,690,800.00 |                3.40 |    0.4% |      3.24 | `ComplexMemPool`
     69
     70|            ns/block |             block/s |    err% |     total | benchmark
     71|--------------------:|--------------------:|--------:|----------:|:----------
     72|      135,146,600.00 |                7.40 |    1.2% |      1.50 | `ConnectBlockAllEcdsa`
     73|      136,611,800.00 |                7.32 |    3.1% |      1.51 | `ConnectBlockAllSchnorr`
     74|      135,439,600.00 |                7.38 |    0.8% |      1.51 | `ConnectBlockMixedEcdsaSchnorr`
     75|       10,885,800.00 |               91.86 |    2.2% |      0.12 | `DeserializeAndCheckBlockTest`
     76|        8,232,900.00 |              121.46 |    4.8% |      0.09 | `DeserializeBlockTest`
     77
     78|               ns/op |                op/s |    err% |     total | benchmark
     79|--------------------:|--------------------:|--------:|----------:|:----------
     80|        8,377,400.00 |              119.37 |    1.1% |      0.09 | `DuplicateInputs`
     81
     82|           ns/pubkey |            pubkey/s |    err% |     total | benchmark
     83|--------------------:|--------------------:|--------:|----------:|:----------
     84|           61,135.29 |           16,357.16 |    8.2% |      0.01 | :wavy_dash: `EllSwiftCreate` (Unstable with ~15.0 iters. Increase `minEpochIterations` to e.g. 150)
     85
     86|               ns/op |                op/s |    err% |     total | benchmark
     87|--------------------:|--------------------:|--------:|----------:|:----------
     88|           17,842.00 |           56,047.53 |    1.7% |      0.01 | `EvictionProtection0Networks250Candidates`
     89|           17,623.91 |           56,741.09 |    5.8% |      0.01 | :wavy_dash: `EvictionProtection1Networks250Candidates` (Unstable with ~52.2 iters. Increase `minEpochIterations` to e.g. 522)
     90|           28,021.21 |           35,687.25 |   10.0% |      0.01 | :wavy_dash: `EvictionProtection2Networks250Candidates` (Unstable with ~34.6 iters. Increase `minEpochIterations` to e.g. 346)
     91|            4,916.51 |          203,396.34 |    2.9% |      0.01 | `EvictionProtection3Networks050Candidates`
     92|           14,537.70 |           68,786.65 |    0.6% |      0.01 | `EvictionProtection3Networks100Candidates`
     93|           32,770.00 |           30,515.72 |    0.4% |      0.01 | `EvictionProtection3Networks250Candidates`
     94|       27,257,200.00 |               36.69 |    1.4% |      0.31 | `ExpandDescriptor`
     95
     96|             ns/byte |              byte/s |    err% |     total | benchmark
     97|--------------------:|--------------------:|--------:|----------:|:----------
     98|                2.98 |      336,049,738.81 |    2.3% |      0.04 | `FSCHACHA20POLY1305_1MB`
     99|                3.69 |      270,753,844.23 |    1.5% |      0.01 | `FSCHACHA20POLY1305_256BYTES`
    100|                6.29 |      159,062,436.86 |    4.2% |      0.01 | `FSCHACHA20POLY1305_64BYTES`
    101
    102|           ns/number |            number/s |    err% |     total | benchmark
    103|--------------------:|--------------------:|--------:|----------:|:----------
    104|               13.51 |       74,002,603.32 |    0.8% |      0.01 | `FastRandom_rand32`
    105|               21.52 |       46,475,091.77 |    2.0% |      0.01 | `FastRandom_rand64`
    106|               17.89 |       55,886,030.54 |    0.5% |      0.01 | `FastRandom_randbits`
    107|                2.03 |      492,182,923.46 |    1.0% |      0.01 | `FastRandom_randbool`
    108|               12.01 |       83,255,086.07 |    0.7% |      0.01 | `FastRandom_randrange100`
    109|               14.46 |       69,142,631.37 |    5.9% |      0.01 | :wavy_dash: `FastRandom_randrange1000` (Unstable with ~70.9 iters. Increase `minEpochIterations` to e.g. 709)
    110|               19.40 |       51,540,546.95 |    0.2% |      0.22 | `FastRandom_randrange1000000`
    111|               50.69 |       19,727,047.15 |   14.7% |      0.01 | :wavy_dash: `FastRandom_stdshuffle100` (Unstable with ~166.2 iters. Increase `minEpochIterations` to e.g. 1662)
    112
    113|               ns/op |                op/s |    err% |     total | benchmark
    114|--------------------:|--------------------:|--------:|----------:|:----------
    115|               20.38 |       49,069,790.93 |    4.7% |      0.01 | `FindByte`
    116|          843,000.00 |            1,186.24 |    1.0% |      0.01 | `GCSBlockFilterGetHash`
    117|       15,844,200.00 |               63.11 |    0.7% |      0.17 | `GCSFilterConstruct`
    118|        2,035,000.00 |              491.40 |    0.2% |      0.02 | `GCSFilterDecode`
    119|            6,160.00 |          162,337.66 |    0.4% |      0.01 | `GCSFilterDecodeSkipCheck`
    120|          252,466.67 |            3,960.92 |    1.3% |      0.01 | `GCSFilterMatch`
    121
    122|           ns/base16 |            base16/s |    err% |     total | benchmark
    123|--------------------:|--------------------:|--------:|----------:|:----------
    124|                2.42 |      413,044,817.50 |    4.9% |      0.01 | `HexParse`
    125
    126|             ns/byte |              byte/s |    err% |     total | benchmark
    127|--------------------:|--------------------:|--------:|----------:|:----------
    128|                1.37 |      729,258,989.13 |   24.9% |      0.02 | :wavy_dash: `HexStrBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    129
    130|           ns/number |            number/s |    err% |     total | benchmark
    131|--------------------:|--------------------:|--------:|----------:|:----------
    132|                2.79 |      358,376,996.23 |    8.7% |      0.01 | :wavy_dash: `InsecureRandom_rand32` (Unstable with ~395,493.5 iters. Increase `minEpochIterations` to e.g. 3954935)
    133|                2.10 |      475,354,929.88 |    2.2% |      0.01 | `InsecureRandom_rand64`
    134|                3.26 |      306,422,541.39 |   17.8% |      0.01 | :wavy_dash: `InsecureRandom_randbits` (Unstable with ~4,377.0 iters. Increase `minEpochIterations` to e.g. 43770)
    135|                1.66 |      602,926,829.27 |    2.9% |      0.01 | `InsecureRandom_randbool`
    136|               11.62 |       86,084,142.39 |    9.8% |      0.01 | :wavy_dash: `InsecureRandom_randrange100` (Unstable with ~994.9 iters. Increase `minEpochIterations` to e.g. 9949)
    137|                8.65 |      115,668,844.38 |    1.4% |      0.01 | `InsecureRandom_randrange1000`
    138|                8.88 |      112,640,519.05 |    4.9% |      0.10 | `InsecureRandom_randrange1000000`
    139|               23.36 |       42,813,765.18 |   10.7% |      0.01 | :wavy_dash: `InsecureRandom_stdshuffle100` (Unstable with ~352.1 iters. Increase `minEpochIterations` to e.g. 3521)
    140
    141|               ns/op |                op/s |    err% |     total | benchmark
    142|--------------------:|--------------------:|--------:|----------:|:----------
    143|           19,800.00 |           50,505.05 |    8.0% |      0.00 | :wavy_dash: `Linearize16TxWorstCase120Iters` (Unstable with ~14.1 iters. Increase `minEpochIterations` to e.g. 141)
    144|            4,152.94 |          240,793.20 |    7.3% |      0.01 | :wavy_dash: `Linearize16TxWorstCase20Iters` (Unstable with ~173.1 iters. Increase `minEpochIterations` to e.g. 1731)
    145|        1,340,300.00 |              746.10 |    5.2% |      0.02 | :wavy_dash: `Linearize32TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    146|          458,800.00 |            2,179.60 |    1.8% |      0.01 | `Linearize32TxWorstCase5000Iters`
    147|        1,283,800.00 |              778.94 |    3.1% |      0.01 | `Linearize48TxWorstCase15000Iters`
    148|          507,900.00 |            1,968.89 |    7.7% |      0.01 | :wavy_dash: `Linearize48TxWorstCase5000Iters` (Unstable with ~2.0 iters. Increase `minEpochIterations` to e.g. 20)
    149|        1,279,700.00 |              781.43 |    1.8% |      0.02 | `Linearize64TxWorstCase15000Iters`
    150|          746,200.00 |            1,340.12 |   11.1% |      0.01 | :wavy_dash: `Linearize64TxWorstCase5000Iters` (Unstable with ~1.4 iters. Increase `minEpochIterations` to e.g. 14)
    151|        3,503,200.00 |              285.45 |   14.3% |      0.04 | :wavy_dash: `Linearize75TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    152|        1,164,900.00 |              858.44 |   22.0% |      0.01 | :wavy_dash: `Linearize75TxWorstCase5000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    153|        2,219,000.00 |              450.65 |    4.9% |      0.03 | `Linearize99TxWorstCase15000Iters`
    154|          812,600.00 |            1,230.62 |    2.1% |      0.01 | `Linearize99TxWorstCase5000Iters`
    155|            2,276.16 |          439,337.25 |    2.2% |      0.01 | `LinearizeNoIters16TxWorstCaseAnc`
    156|            3,408.36 |          293,395.92 |    1.2% |      0.01 | `LinearizeNoIters16TxWorstCaseLIMO`
    157|            7,155.92 |          139,744.41 |    0.4% |      0.01 | `LinearizeNoIters32TxWorstCaseAnc`
    158|           12,471.21 |           80,184.67 |    3.0% |      0.01 | `LinearizeNoIters32TxWorstCaseLIMO`
    159|           16,783.33 |           59,582.92 |    9.0% |      0.01 | :wavy_dash: `LinearizeNoIters48TxWorstCaseAnc` (Unstable with ~51.6 iters. Increase `minEpochIterations` to e.g. 516)
    160|           31,245.83 |           32,004.27 |   11.6% |      0.01 | :wavy_dash: `LinearizeNoIters48TxWorstCaseLIMO` (Unstable with ~30.4 iters. Increase `minEpochIterations` to e.g. 304)
    161|           27,361.11 |           36,548.22 |    2.2% |      0.01 | `LinearizeNoIters64TxWorstCaseAnc`
    162|           48,836.84 |           20,476.34 |    2.1% |      0.01 | `LinearizeNoIters64TxWorstCaseLIMO`
    163|           53,081.25 |           18,839.04 |    1.7% |      0.01 | `LinearizeNoIters75TxWorstCaseAnc`
    164|           77,928.57 |           12,832.26 |    8.7% |      0.01 | :wavy_dash: `LinearizeNoIters75TxWorstCaseLIMO` (Unstable with ~11.8 iters. Increase `minEpochIterations` to e.g. 118)
    165|           65,180.00 |           15,342.13 |    4.9% |      0.01 | `LinearizeNoIters99TxWorstCaseAnc`
    166|          126,387.50 |            7,912.17 |    0.7% |      0.01 | `LinearizeNoIters99TxWorstCaseLIMO`
    167|          184,075.00 |            5,432.57 |    9.2% |      0.01 | :wavy_dash: `LinearizeOptimallyExample00` (Unstable with ~4.0 iters. Increase `minEpochIterations` to e.g. 40)
    168|          344,650.00 |            2,901.49 |   25.9% |      0.01 | :wavy_dash: `LinearizeOptimallyExample01` (Unstable with ~2.8 iters. Increase `minEpochIterations` to e.g. 28)
    169|          130,585.71 |            7,657.81 |    1.3% |      0.01 | `LinearizeOptimallyExample02`
    170|          165,950.00 |            6,025.91 |    1.4% |      0.01 | `LinearizeOptimallyExample03`
    171|            6,424.32 |          155,658.39 |    1.9% |      0.01 | `LinearizeOptimallyExample04`
    172|           42,055.00 |           23,778.39 |    6.2% |      0.01 | :wavy_dash: `LinearizeOptimallyExample05` (Unstable with ~22.9 iters. Increase `minEpochIterations` to e.g. 229)
    173|          110,590.00 |            9,042.41 |    1.7% |      0.01 | `LinearizeOptimallyExample06`
    174|           25,597.56 |           39,066.22 |    0.5% |      0.01 | `LinearizeOptimallyExample07`
    175|          187,075.00 |            5,345.45 |    1.3% |      0.01 | `LinearizeOptimallyExample08`
    176|           40,508.33 |           24,686.28 |    3.8% |      0.01 | `LinearizeOptimallyExample09`
    177|           28,385.29 |           35,229.51 |    2.1% |      0.01 | `LinearizeOptimallyExample10`
    178|      719,994,100.00 |                1.39 |    1.3% |      7.99 | `LinearizeOptimallyExample11`
    179|        1,006,700.00 |              993.34 |    0.9% |      0.01 | `LinearizeOptimallyExample12`
    180|          176,500.00 |            5,665.72 |    2.4% |      0.01 | `LinearizeOptimallyExample13`
    181|        1,143,000.00 |              874.89 |    2.1% |      0.01 | `LinearizeOptimallyExample14`
    182|       29,272,700.00 |               34.16 |    0.5% |      0.33 | `LinearizeOptimallyExample15`
    183|       20,853,100.00 |               47.95 |    0.3% |      0.23 | `LinearizeOptimallyExample16`
    184|       26,201,500.00 |               38.17 |    0.3% |      0.30 | `LinearizeOptimallyExample17`
    185|       26,541,500.00 |               37.68 |    0.7% |      0.30 | `LinearizeOptimallyExample18`
    186|       32,764,400.00 |               30.52 |    3.9% |      0.37 | `LinearizeOptimallyExample19`
    187|       39,456,100.00 |               25.34 |    4.0% |      0.50 | `LoadExternalBlockFile`
    188|           13,837.88 |           72,265.41 |    1.1% |      0.01 | `LogWithDebug`
    189|           22,309.09 |           44,824.78 |    1.1% |      0.01 | `LogWithThreadNames`
    190|                5.11 |      195,635,694.57 |    0.6% |      0.01 | `LogWithoutDebug`
    191|           21,524.39 |           46,458.92 |    1.0% |      0.01 | `LogWithoutThreadNames`
    192|               84.59 |       11,822,331.46 |    0.6% |      0.01 | `LogWithoutWriteToFile`
    193|      106,364,600.00 |                9.40 |    0.6% |      1.18 | `MempoolCheck`
    194|           93,475.00 |           10,698.05 |    6.3% |      0.01 | :wavy_dash: `MempoolCheckEphemeralSpends` (Unstable with ~11.1 iters. Increase `minEpochIterations` to e.g. 111)
    195|           78,840.00 |           12,683.92 |    3.3% |      0.01 | `MempoolEviction`
    196|            1,662.86 |          601,372.26 |    1.2% |      0.01 | `MergeLinearizations16TxWorstCase`
    197|            6,180.56 |          161,797.75 |    2.8% |      0.01 | `MergeLinearizations32TxWorstCase`
    198|           13,255.38 |           75,441.04 |    0.4% |      0.01 | `MergeLinearizations48TxWorstCase`
    199|           24,127.59 |           41,446.33 |    0.2% |      0.01 | `MergeLinearizations64TxWorstCase`
    200|           41,200.00 |           24,271.84 |    4.2% |      0.01 | `MergeLinearizations75TxWorstCase`
    201|           71,612.50 |           13,964.04 |    5.3% |      0.01 | :wavy_dash: `MergeLinearizations99TxWorstCase` (Unstable with ~13.7 iters. Increase `minEpochIterations` to e.g. 137)
    202
    203|             ns/leaf |              leaf/s |    err% |     total | benchmark
    204|--------------------:|--------------------:|--------:|----------:|:----------
    205|              803.73 |        1,244,194.40 |    1.7% |      0.08 | `MerkleRoot`
    206
    207|               ns/op |                op/s |    err% |     total | benchmark
    208|--------------------:|--------------------:|--------:|----------:|:----------
    209|           23,234.38 |           43,039.68 |    0.9% |      0.01 | `MuHash`
    210|           22,334.04 |           44,774.70 |    1.5% |      0.01 | `MuHashDiv`
    211|          118,775.00 |            8,419.28 |    0.4% |      0.01 | `MuHashFinalize`
    212|           24,059.38 |           41,563.84 |    7.7% |      0.01 | :wavy_dash: `MuHashMul` (Unstable with ~39.3 iters. Increase `minEpochIterations` to e.g. 393)
    213|            1,170.44 |          854,377.57 |    5.3% |      0.01 | :wavy_dash: `MuHashPrecompute` (Unstable with ~775.1 iters. Increase `minEpochIterations` to e.g. 7751)
    214
    215|             ns/byte |              byte/s |    err% |     total | benchmark
    216|--------------------:|--------------------:|--------:|----------:|:----------
    217|                0.08 |   13,208,359,679.74 |   15.8% |      0.01 | :wavy_dash: `ObfuscationBench` (Unstable with ~12,789.5 iters. Increase `minEpochIterations` to e.g. 127895)
    218
    219|               ns/op |                op/s |    err% |     total | benchmark
    220|--------------------:|--------------------:|--------:|----------:|:----------
    221|       25,839,500.00 |               38.70 |    0.0% |      0.03 | `OrphanageEraseForBlock`
    222|        8,382,700.00 |              119.29 |    0.0% |      0.01 | `OrphanageEraseForPeer`
    223|        8,739,700.00 |              114.42 |    0.0% |      0.01 | `OrphanageMultiPeerEviction`
    224|          914,900.00 |            1,093.02 |    0.0% |      0.00 | `OrphanageSinglePeerEviction`
    225
    226|             ns/byte |              byte/s |    err% |     total | benchmark
    227|--------------------:|--------------------:|--------:|----------:|:----------
    228|                1.01 |      987,731,725.70 |    1.0% |      0.01 | `POLY1305_1MB`
    229|                1.05 |      950,234,981.39 |    1.1% |      0.01 | `POLY1305_256BYTES`
    230|                1.23 |      810,674,540.92 |    0.2% |      0.01 | `POLY1305_64BYTES`
    231
    232|               ns/op |                op/s |    err% |     total | benchmark
    233|--------------------:|--------------------:|--------:|----------:|:----------
    234|               73.26 |       13,650,324.20 |    2.8% |      0.06 | `PoolAllocator_StdUnorderedMap`
    235|               20.40 |       49,028,347.30 |    0.3% |      0.02 | `PoolAllocator_StdUnorderedMapWithPoolResource`
    236|            1,630.94 |          613,143.28 |    9.8% |      0.01 | :wavy_dash: `PostLinearize16TxWorstCase` (Unstable with ~583.2 iters. Increase `minEpochIterations` to e.g. 5832)
    237|            5,243.22 |          190,722.64 |    4.4% |      0.01 | `PostLinearize32TxWorstCase`
    238|           10,507.06 |           95,174.11 |    2.0% |      0.01 | `PostLinearize48TxWorstCase`
    239|           17,806.78 |           56,158.39 |    0.2% |      0.01 | `PostLinearize64TxWorstCase`
    240|           26,935.48 |           37,125.75 |    1.0% |      0.01 | `PostLinearize75TxWorstCase`
    241|           45,540.00 |           21,958.72 |    0.9% |      0.01 | `PostLinearize99TxWorstCase`
    242|              348.53 |        2,869,175.24 |    0.9% |      0.01 | `PrePadded`
    243|               13.09 |       76,408,566.72 |    1.5% |      0.01 | `PrevectorClearNontrivial`
    244|               13.10 |       76,340,252.71 |    1.9% |      0.01 | `PrevectorClearTrivial`
    245|              513.70 |        1,946,661.48 |    0.9% |      0.01 | `PrevectorDeserializeNontrivial`
    246|               25.56 |       39,116,185.64 |    1.7% |      0.01 | `PrevectorDeserializeTrivial`
    247|               34.86 |       28,686,825.52 |    0.3% |      0.01 | `PrevectorDestructorNontrivial`
    248|               34.30 |       29,158,158.35 |    0.4% |      0.01 | `PrevectorDestructorTrivial`
    249|            2,955.97 |          338,298.76 |    0.5% |      0.01 | `PrevectorFillVectorDirectNontrivial`
    250|            1,062.68 |          941,018.49 |   16.4% |      0.01 | :wavy_dash: `PrevectorFillVectorDirectTrivial` (Unstable with ~878.6 iters. Increase `minEpochIterations` to e.g. 8786)
    251|           18,486.27 |           54,094.19 |    5.6% |      0.01 | :wavy_dash: `PrevectorFillVectorIndirectNontrivial` (Unstable with ~51.8 iters. Increase `minEpochIterations` to e.g. 518)
    252|           14,531.25 |           68,817.20 |    1.2% |      0.01 | `PrevectorFillVectorIndirectTrivial`
    253|                6.59 |      151,681,063.12 |    1.2% |      0.01 | `PrevectorResizeNontrivial`
    254|                6.52 |      153,458,755.43 |    0.9% |      0.01 | `PrevectorResizeTrivial`
    255|        9,865,300.00 |              101.37 |    5.8% |      0.12 | :wavy_dash: `ReadBlockBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    256|        1,411,200.00 |              708.62 |    3.2% |      0.02 | `ReadRawBlockBench`
    257|              680.73 |        1,469,008.73 |    0.7% |      0.01 | `RegularPadded`
    258|              497.44 |        2,010,294.54 |    1.0% |      0.01 | `RollingBloom`
    259|           27,363.16 |           36,545.49 |    0.2% |      0.01 | `RollingBloomReset`
    260|       16,691,500.00 |               59.91 |    1.0% |      0.19 | `RpcMempool`
    261
    262|             ns/byte |              byte/s |    err% |     total | benchmark
    263|--------------------:|--------------------:|--------:|----------:|:----------
    264|                1.71 |      585,411,544.32 |    0.9% |      0.02 | `SHA1`
    265|               12.23 |       81,756,487.03 |    0.4% |      0.01 | `SHA256D64_1024_AVX2 using the 'standard' SHA256 implementation`
    266|               12.33 |       81,108,910.89 |    1.3% |      0.01 | `SHA256D64_1024_SHANI using the 'standard' SHA256 implementation`
    267|               12.65 |       79,025,684.31 |    3.4% |      0.01 | `SHA256D64_1024_SSE4 using the 'standard' SHA256 implementation`
    268|               12.27 |       81,512,437.81 |    0.6% |      0.01 | `SHA256D64_1024_STANDARD using the 'standard' SHA256 implementation`
    269|               10.94 |       91,389,499.39 |    1.2% |      0.01 | `SHA256_32b_AVX2 using the 'standard' SHA256 implementation`
    270|               11.19 |       89,345,293.33 |    3.5% |      0.01 | `SHA256_32b_SHANI using the 'standard' SHA256 implementation`
    271|               11.50 |       86,973,470.49 |    6.3% |      0.01 | :wavy_dash: `SHA256_32b_SSE4 using the 'standard' SHA256 implementation` (Unstable with ~2,799.7 iters. Increase `minEpochIterations` to e.g. 27997)
    272|               10.89 |       91,825,214.30 |    0.5% |      0.01 | `SHA256_32b_STANDARD using the 'standard' SHA256 implementation`
    273|                4.93 |      203,037,440.10 |    0.8% |      0.06 | `SHA256_AVX2 using the 'standard' SHA256 implementation`
    274|                5.06 |      197,526,962.43 |    3.1% |      0.06 | `SHA256_SHANI using the 'standard' SHA256 implementation`
    275|                5.04 |      198,558,465.54 |    2.8% |      0.06 | `SHA256_SSE4 using the 'standard' SHA256 implementation`
    276|                5.04 |      198,542,696.61 |    3.0% |      0.06 | `SHA256_STANDARD using the 'standard' SHA256 implementation`
    277|                4.22 |      236,910,684.67 |    3.4% |      0.05 | `SHA3_256_1M`
    278|                2.52 |      396,967,170.81 |    1.3% |      0.03 | `SHA512`
    279
    280|               ns/op |                op/s |    err% |     total | benchmark
    281|--------------------:|--------------------:|--------:|----------:|:----------
    282|          170,784.40 |            5,855.34 |    1.8% |      0.21 | `SignSchnorrWithMerkleRoot`
    283|          171,072.81 |            5,845.46 |    2.3% |      0.21 | `SignSchnorrWithNullMerkleRoot`
    284|          264,442.61 |            3,781.54 |    0.7% |      0.32 | `SignTransactionECDSA`
    285|          211,025.22 |            4,738.77 |    0.9% |      0.26 | `SignTransactionSchnorr`
    286|               30.11 |       33,210,919.73 |    1.6% |      0.01 | `SipHash_32b`
    287|                9.23 |      108,313,013.40 |    5.9% |      0.02 | :wavy_dash: `Trig` (Unstable with ~188,576.0 iters. Increase `minEpochIterations` to e.g. 1885760)
    288|       33,670,400.00 |               29.70 |    0.0% |      0.03 | `TxGraphTrim`
    289|          106,750.00 |            9,367.68 |    0.6% |      0.01 | `VerifyNestedIfScript`
    290|           67,992.31 |           14,707.55 |    1.3% |      0.01 | `VerifyScriptBench`
    291|      120,327,800.00 |                8.31 |    0.2% |      1.33 | `WalletAvailableCoins`
    292|            6,284.76 |          159,115.16 |    1.3% |      0.01 | `WalletBalanceClean`
    293|            6,926.72 |          144,368.53 |    0.9% |      0.01 | `WalletBalanceDirty`
    294|            6,308.93 |          158,505.52 |    1.1% |      0.01 | `WalletBalanceMine`
    295|               78.53 |       12,734,112.86 |    1.0% |      0.01 | `WalletBalanceWatch`
    296|    1,320,096,500.00 |                0.76 |    0.9% |     14.74 | `WalletCreateEncrypted`
    297|    1,000,096,500.00 |                1.00 |    1.8% |     11.01 | `WalletCreatePlain`
    298|        2,470,100.00 |              404.84 |    1.3% |      0.03 | `WalletCreateTxUseOnlyPresetInputs`
    299|      129,672,200.00 |                7.71 |    1.3% |      1.44 | `WalletCreateTxUsePresetInputsAndCoinSelection`
    300|              103.20 |        9,690,302.30 |    0.1% |      0.01 | `WalletIsMineDescriptors`
    301|              103.40 |        9,671,102.46 |    0.4% |      0.01 | `WalletIsMineMigratedDescriptors`
    302|      682,741,400.00 |                1.46 |    0.4% |      3.42 | `WalletLoadingDescriptors`
    303|    9,446,679,300.00 |                0.11 |    0.0% |      9.45 | `WalletMigration`
    304|       10,101,000.00 |               99.00 |    1.0% |      0.11 | `WriteBlockBench`
    
      0|               ns/op |                op/s |    err% |     total | benchmark
      1|--------------------:|--------------------:|--------:|----------:|:----------
      2|        1,451,472.73 |              688.96 |    4.7% |      0.16 | `AddAndRemoveDisconnectedBlockTransactions10`
      3|        1,147,027.27 |              871.82 |    0.5% |      0.14 | `AddAndRemoveDisconnectedBlockTransactions90`
      4|        1,431,420.00 |              698.61 |    2.7% |      0.18 | `AddAndRemoveDisconnectedBlockTransactionsAll`
      5|       53,722,500.00 |               18.61 |    0.5% |      0.60 | `AddrManAdd`
      6|      136,084,600.00 |                7.35 |    1.3% |      1.51 | `AddrManAddThenGood`
      7|          255,600.00 |            3,912.36 |    0.9% |      0.01 | `AddrManGetAddr`
      8|              289.15 |        3,458,382.18 |    2.2% |      0.01 | `AddrManSelect`
      9|        1,059,900.00 |              943.49 |   47.5% |      0.01 | :wavy_dash: `AddrManSelectByNetwork` (Unstable with ~1.1 iters. Increase `minEpochIterations` to e.g. 11)
     10|           79,000.00 |           12,658.23 |   29.1% |      0.01 | :wavy_dash: `AddrManSelectFromAlmostEmpty` (Unstable with ~12.2 iters. Increase `minEpochIterations` to e.g. 122)
     11|          581,250.00 |            1,720.43 |    4.1% |      0.01 | `AssembleBlock`
     12
     13|             ns/ecdh |              ecdh/s |    err% |     total | benchmark
     14|--------------------:|--------------------:|--------:|----------:|:----------
     15|           46,791.30 |           21,371.49 |    0.5% |      0.01 | `BIP324_ECDH`
     16
     17|             ns/byte |              byte/s |    err% |     total | benchmark
     18|--------------------:|--------------------:|--------:|----------:|:----------
     19|              113.44 |        8,815,521.49 |    0.5% |      0.01 | `Base58CheckEncode`
     20|               26.41 |       37,868,835.99 |    0.6% |      0.01 | `Base58Decode`
     21|               76.55 |       13,063,597.82 |    1.8% |      0.01 | `Base58Encode`
     22|                9.45 |      105,876,049.29 |    3.7% |      0.01 | `Bech32Decode`
     23|               17.65 |       56,659,019.81 |    0.6% |      0.01 | `Bech32Encode`
     24
     25|               ns/op |                op/s |    err% |     total | benchmark
     26|--------------------:|--------------------:|--------:|----------:|:----------
     27|              188.81 |        5,296,396.75 |    1.0% |      0.01 | `BenchLockedPool`
     28
     29|             ns/byte |              byte/s |    err% |     total | benchmark
     30|--------------------:|--------------------:|--------:|----------:|:----------
     31|                2.36 |      423,872,499.15 |    4.1% |      0.03 | `BenchRIPEMD160`
     32
     33|               ns/op |                op/s |    err% |     total | benchmark
     34|--------------------:|--------------------:|--------:|----------:|:----------
     35|               28.55 |       35,026,548.67 |    1.2% |      0.01 | `BenchTimeDeprecated`
     36|               27.32 |       36,609,274.56 |    0.9% |      0.01 | `BenchTimeMillis`
     37|               20.66 |       48,396,462.22 |    0.4% |      0.01 | `BenchTimeMillisSys`
     38|                2.17 |      460,582,963.96 |    1.0% |      0.01 | `BenchTimeMock`
     39|    1,448,861,600.00 |                0.69 |    0.4% |     15.91 | `BlockAssemblerAddPackageTxns`
     40|        2,555,100.00 |              391.37 |    1.1% |      0.03 | `BlockEncodingLargeExtra`
     41|        2,314,600.00 |              432.04 |    0.7% |      0.03 | `BlockEncodingNoExtra`
     42|        2,345,900.00 |              426.28 |    1.1% |      0.03 | `BlockEncodingStdExtra`
     43|    5,455,197,200.00 |                0.18 |    0.2% |    322.09 | `BlockFilterIndexSync`
     44|       45,462,500.00 |               22.00 |    1.0% |      0.51 | `BlockToJsonVerboseWrite`
     45|          442,400.00 |            2,260.40 |    0.4% |      0.01 | `BlockToJsonVerbosity1`
     46|       83,156,800.00 |               12.03 |    1.3% |      0.93 | `BlockToJsonVerbosity2`
     47|       82,647,900.00 |               12.10 |    0.4% |      0.92 | `BlockToJsonVerbosity3`
     48|          617,350.00 |            1,619.83 |    0.4% |      0.01 | `BnBExhaustion`
     49
     50|              ns/job |               job/s |    err% |     total | benchmark
     51|--------------------:|--------------------:|--------:|----------:|:----------
     52|              230.93 |        4,330,272.61 |    7.0% |      0.09 | :wavy_dash: `CCheckQueueSpeedPrevectorJob` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)
     53
     54|               ns/op |                op/s |    err% |     total | benchmark
     55|--------------------:|--------------------:|--------:|----------:|:----------
     56|              683.83 |        1,462,358.04 |    3.1% |      0.01 | `CCoinsCaching`
     57
     58|             ns/byte |              byte/s |    err% |     total | benchmark
     59|--------------------:|--------------------:|--------:|----------:|:----------
     60|                1.67 |      599,666,018.53 |    0.5% |      0.02 | `CHACHA20_1MB`
     61|                1.73 |      577,714,344.81 |    0.8% |      0.01 | `CHACHA20_256BYTES`
     62|                2.00 |      500,654,679.58 |    2.6% |      0.01 | `CHACHA20_64BYTES`
     63
     64|               ns/op |                op/s |    err% |     total | benchmark
     65|--------------------:|--------------------:|--------:|----------:|:----------
     66|           91,781.82 |           10,895.40 |    1.7% |      0.01 | `CheckBlockIndex`
     67|       16,983,800.00 |               58.88 |    0.8% |      0.19 | `CoinSelection`
     68|      296,209,200.00 |                3.38 |    0.2% |      3.25 | `ComplexMemPool`
     69
     70|            ns/block |             block/s |    err% |     total | benchmark
     71|--------------------:|--------------------:|--------:|----------:|:----------
     72|       86,831,100.00 |               11.52 |    1.3% |      0.98 | `ConnectBlockAllEcdsa`
     73|       84,704,400.00 |               11.81 |    1.0% |      0.94 | `ConnectBlockAllSchnorr`
     74|       87,313,300.00 |               11.45 |    0.6% |      0.97 | `ConnectBlockMixedEcdsaSchnorr`
     75|        6,986,900.00 |              143.12 |    2.2% |      0.08 | `DeserializeAndCheckBlockTest`
     76|        5,289,800.00 |              189.04 |    6.4% |      0.06 | :wavy_dash: `DeserializeBlockTest` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
     77
     78|               ns/op |                op/s |    err% |     total | benchmark
     79|--------------------:|--------------------:|--------:|----------:|:----------
     80|        7,979,700.00 |              125.32 |    0.5% |      0.09 | `DuplicateInputs`
     81
     82|           ns/pubkey |            pubkey/s |    err% |     total | benchmark
     83|--------------------:|--------------------:|--------:|----------:|:----------
     84|           42,715.79 |           23,410.55 |    2.3% |      0.01 | `EllSwiftCreate`
     85
     86|               ns/op |                op/s |    err% |     total | benchmark
     87|--------------------:|--------------------:|--------:|----------:|:----------
     88|           17,945.28 |           55,724.95 |   13.8% |      0.01 | :wavy_dash: `EvictionProtection0Networks250Candidates` (Unstable with ~41.4 iters. Increase `minEpochIterations` to e.g. 414)
     89|           15,346.00 |           65,163.56 |   12.5% |      0.01 | :wavy_dash: `EvictionProtection1Networks250Candidates` (Unstable with ~60.7 iters. Increase `minEpochIterations` to e.g. 607)
     90|           21,886.36 |           45,690.55 |    9.2% |      0.01 | :wavy_dash: `EvictionProtection2Networks250Candidates` (Unstable with ~45.9 iters. Increase `minEpochIterations` to e.g. 459)
     91|            4,370.44 |          228,809.74 |    9.7% |      0.01 | :wavy_dash: `EvictionProtection3Networks050Candidates` (Unstable with ~222.7 iters. Increase `minEpochIterations` to e.g. 2227)
     92|           11,346.24 |           88,134.95 |    0.6% |      0.01 | `EvictionProtection3Networks100Candidates`
     93|           27,344.12 |           36,570.94 |    5.2% |      0.01 | :wavy_dash: `EvictionProtection3Networks250Candidates` (Unstable with ~36.3 iters. Increase `minEpochIterations` to e.g. 363)
     94|       21,228,500.00 |               47.11 |    1.2% |      0.23 | `ExpandDescriptor`
     95
     96|             ns/byte |              byte/s |    err% |     total | benchmark
     97|--------------------:|--------------------:|--------:|----------:|:----------
     98|                2.37 |      421,182,519.28 |    1.9% |      0.03 | `FSCHACHA20POLY1305_1MB`
     99|                3.20 |      312,461,857.68 |    2.6% |      0.01 | `FSCHACHA20POLY1305_256BYTES`
    100|                5.63 |      177,559,854.43 |    1.6% |      0.01 | `FSCHACHA20POLY1305_64BYTES`
    101
    102|           ns/number |            number/s |    err% |     total | benchmark
    103|--------------------:|--------------------:|--------:|----------:|:----------
    104|               10.98 |       91,078,985.96 |    0.4% |      0.01 | `FastRandom_rand32`
    105|               19.82 |       50,464,399.95 |    0.9% |      0.01 | `FastRandom_rand64`
    106|               12.52 |       79,874,882.70 |    2.2% |      0.01 | `FastRandom_randbits`
    107|                1.84 |      543,283,597.77 |    1.1% |      0.01 | `FastRandom_randbool`
    108|               11.42 |       87,556,632.60 |    0.8% |      0.01 | `FastRandom_randrange100`
    109|               12.19 |       82,008,200.82 |    1.4% |      0.01 | `FastRandom_randrange1000`
    110|               16.76 |       59,662,311.32 |    1.1% |      0.19 | `FastRandom_randrange1000000`
    111|               34.60 |       28,900,930.94 |    0.5% |      0.01 | `FastRandom_stdshuffle100`
    112
    113|               ns/op |                op/s |    err% |     total | benchmark
    114|--------------------:|--------------------:|--------:|----------:|:----------
    115|               15.03 |       66,527,760.60 |    2.1% |      0.01 | `FindByte`
    116|          499,850.00 |            2,000.60 |    0.7% |      0.01 | `GCSBlockFilterGetHash`
    117|       14,975,200.00 |               66.78 |    0.7% |      0.17 | `GCSFilterConstruct`
    118|        1,859,900.00 |              537.66 |    2.4% |      0.02 | `GCSFilterDecode`
    119|            5,623.89 |          177,812.90 |    0.9% |      0.01 | `GCSFilterDecodeSkipCheck`
    120|          212,120.00 |            4,714.31 |    0.5% |      0.01 | `GCSFilterMatch`
    121
    122|           ns/base16 |            base16/s |    err% |     total | benchmark
    123|--------------------:|--------------------:|--------:|----------:|:----------
    124|                3.24 |      308,399,366.09 |    0.3% |      0.01 | `HexParse`
    125
    126|             ns/byte |              byte/s |    err% |     total | benchmark
    127|--------------------:|--------------------:|--------:|----------:|:----------
    128|                0.94 |    1,064,388,971.68 |   12.4% |      0.01 | :wavy_dash: `HexStrBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    129
    130|           ns/number |            number/s |    err% |     total | benchmark
    131|--------------------:|--------------------:|--------:|----------:|:----------
    132|                1.76 |      567,551,949.57 |    1.1% |      0.01 | `InsecureRandom_rand32`
    133|                2.10 |      477,100,915.78 |    3.0% |      0.01 | `InsecureRandom_rand64`
    134|                2.17 |      460,846,145.69 |    0.9% |      0.01 | `InsecureRandom_randbits`
    135|                1.47 |      680,678,296.67 |    0.8% |      0.01 | `InsecureRandom_randbool`
    136|                7.20 |      138,831,042.62 |    2.6% |      0.01 | `InsecureRandom_randrange100`
    137|                6.88 |      145,243,282.50 |    1.5% |      0.01 | `InsecureRandom_randrange1000`
    138|                7.39 |      135,382,116.02 |    0.9% |      0.08 | `InsecureRandom_randrange1000000`
    139|               16.31 |       61,325,847.55 |    0.5% |      0.01 | `InsecureRandom_stdshuffle100`
    140
    141|               ns/op |                op/s |    err% |     total | benchmark
    142|--------------------:|--------------------:|--------:|----------:|:----------
    143|            9,683.87 |          103,264.49 |    0.6% |      0.01 | `Linearize16TxWorstCase120Iters`
    144|            3,162.66 |          316,189.30 |    7.0% |      0.01 | :wavy_dash: `Linearize16TxWorstCase20Iters` (Unstable with ~278.6 iters. Increase `minEpochIterations` to e.g. 2786)
    145|        1,031,700.00 |              969.27 |   12.3% |      0.01 | :wavy_dash: `Linearize32TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    146|          351,066.67 |            2,848.46 |    0.6% |      0.01 | `Linearize32TxWorstCase5000Iters`
    147|          874,500.00 |            1,143.51 |    0.3% |      0.01 | `Linearize48TxWorstCase15000Iters`
    148|          321,950.00 |            3,106.07 |    1.6% |      0.01 | `Linearize48TxWorstCase5000Iters`
    149|          939,900.00 |            1,063.94 |    5.9% |      0.01 | :wavy_dash: `Linearize64TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    150|          370,600.00 |            2,698.33 |    1.3% |      0.01 | `Linearize64TxWorstCase5000Iters`
    151|        1,365,800.00 |              732.17 |    2.5% |      0.02 | `Linearize75TxWorstCase15000Iters`
    152|          538,750.00 |            1,856.15 |    1.2% |      0.01 | `Linearize75TxWorstCase5000Iters`
    153|        1,392,900.00 |              717.93 |    5.3% |      0.02 | :wavy_dash: `Linearize99TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    154|          541,400.00 |            1,847.06 |    3.0% |      0.01 | `Linearize99TxWorstCase5000Iters`
    155|            1,451.48 |          688,953.18 |    0.6% |      0.01 | `LinearizeNoIters16TxWorstCaseAnc`
    156|            2,159.19 |          463,135.79 |    0.2% |      0.01 | `LinearizeNoIters16TxWorstCaseLIMO`
    157|            4,901.71 |          204,010.26 |    3.4% |      0.01 | `LinearizeNoIters32TxWorstCaseAnc`
    158|            8,484.00 |          117,868.93 |    8.8% |      0.01 | :wavy_dash: `LinearizeNoIters32TxWorstCaseLIMO` (Unstable with ~118.3 iters. Increase `minEpochIterations` to e.g. 1183)
    159|            8,153.04 |          122,653.58 |    1.5% |      0.01 | `LinearizeNoIters48TxWorstCaseAnc`
    160|           17,206.90 |           58,116.23 |    3.9% |      0.01 | `LinearizeNoIters48TxWorstCaseLIMO`
    161|           14,300.00 |           69,930.07 |    3.0% |      0.01 | `LinearizeNoIters64TxWorstCaseAnc`
    162|           30,121.87 |           33,198.46 |    1.8% |      0.01 | `LinearizeNoIters64TxWorstCaseLIMO`
    163|           21,540.00 |           46,425.26 |    0.5% |      0.01 | `LinearizeNoIters75TxWorstCaseAnc`
    164|           46,038.10 |           21,721.14 |    0.7% |      0.01 | `LinearizeNoIters75TxWorstCaseLIMO`
    165|           37,370.59 |           26,759.01 |    4.7% |      0.01 | `LinearizeNoIters99TxWorstCaseAnc`
    166|           80,030.00 |           12,495.31 |    1.9% |      0.01 | `LinearizeNoIters99TxWorstCaseLIMO`
    167|          117,644.44 |            8,500.19 |    1.1% |      0.01 | `LinearizeOptimallyExample00`
    168|          182,060.00 |            5,492.69 |    0.3% |      0.01 | `LinearizeOptimallyExample01`
    169|           88,050.00 |           11,357.18 |    1.8% |      0.01 | `LinearizeOptimallyExample02`
    170|          106,620.00 |            9,379.10 |    2.9% |      0.01 | `LinearizeOptimallyExample03`
    171|            4,921.03 |          203,209.67 |    0.6% |      0.01 | `LinearizeOptimallyExample04`
    172|           25,166.67 |           39,735.10 |    0.2% |      0.01 | `LinearizeOptimallyExample05`
    173|           70,709.09 |           14,142.45 |    1.2% |      0.01 | `LinearizeOptimallyExample06`
    174|           16,685.71 |           59,931.51 |    1.7% |      0.01 | `LinearizeOptimallyExample07`
    175|          138,250.00 |            7,233.27 |    1.5% |      0.01 | `LinearizeOptimallyExample08`
    176|           25,919.44 |           38,581.07 |    0.6% |      0.01 | `LinearizeOptimallyExample09`
    177|           18,258.18 |           54,769.97 |    0.5% |      0.01 | `LinearizeOptimallyExample10`
    178|      496,799,900.00 |                2.01 |    0.6% |      5.46 | `LinearizeOptimallyExample11`
    179|          787,500.00 |            1,269.84 |    1.5% |      0.01 | `LinearizeOptimallyExample12`
    180|          116,711.11 |            8,568.16 |    1.1% |      0.01 | `LinearizeOptimallyExample13`
    181|          718,800.00 |            1,391.21 |    3.8% |      0.01 | `LinearizeOptimallyExample14`
    182|       21,523,300.00 |               46.46 |    0.6% |      0.24 | `LinearizeOptimallyExample15`
    183|       14,895,300.00 |               67.14 |    1.1% |      0.17 | `LinearizeOptimallyExample16`
    184|       18,399,200.00 |               54.35 |    0.3% |      0.20 | `LinearizeOptimallyExample17`
    185|       18,561,100.00 |               53.88 |    0.3% |      0.21 | `LinearizeOptimallyExample18`
    186|       22,151,600.00 |               45.14 |    3.1% |      0.25 | `LinearizeOptimallyExample19`
    187|       38,314,200.00 |               26.10 |    3.5% |      0.43 | `LoadExternalBlockFile`
    188|           13,187.50 |           75,829.38 |    1.0% |      0.01 | `LogWithDebug`
    189|           21,370.21 |           46,794.11 |    6.2% |      0.01 | :wavy_dash: `LogWithThreadNames` (Unstable with ~45.1 iters. Increase `minEpochIterations` to e.g. 451)
    190|                5.64 |      177,250,274.97 |    1.9% |      0.01 | `LogWithoutDebug`
    191|           21,744.00 |           45,989.70 |    3.9% |      0.01 | `LogWithoutThreadNames`
    192|               82.91 |       12,061,834.77 |    0.3% |      0.01 | `LogWithoutWriteToFile`
    193|      127,724,700.00 |                7.83 |    0.3% |      1.41 | `MempoolCheck`
    194|           91,550.00 |           10,922.99 |    8.6% |      0.01 | :wavy_dash: `MempoolCheckEphemeralSpends` (Unstable with ~11.0 iters. Increase `minEpochIterations` to e.g. 110)
    195|          117,588.89 |            8,504.20 |    3.1% |      0.01 | `MempoolEviction`
    196|            1,328.90 |          752,501.92 |    1.3% |      0.01 | `MergeLinearizations16TxWorstCase`
    197|            4,865.80 |          205,515.92 |    1.8% |      0.01 | `MergeLinearizations32TxWorstCase`
    198|            9,940.95 |          100,593.98 |    0.4% |      0.01 | `MergeLinearizations48TxWorstCase`
    199|           18,200.00 |           54,945.05 |    0.9% |      0.01 | `MergeLinearizations64TxWorstCase`
    200|           29,572.73 |           33,814.94 |    4.4% |      0.01 | `MergeLinearizations75TxWorstCase`
    201|           50,065.00 |           19,974.03 |    1.4% |      0.01 | `MergeLinearizations99TxWorstCase`
    202
    203|             ns/leaf |              leaf/s |    err% |     total | benchmark
    204|--------------------:|--------------------:|--------:|----------:|:----------
    205|              613.15 |        1,630,911.40 |    2.6% |      0.06 | `MerkleRoot`
    206
    207|               ns/op |                op/s |    err% |     total | benchmark
    208|--------------------:|--------------------:|--------:|----------:|:----------
    209|           19,535.42 |           51,189.08 |    0.5% |      0.01 | `MuHash`
    210|           18,587.50 |           53,799.60 |    0.6% |      0.01 | `MuHashDiv`
    211|          104,680.00 |            9,552.92 |    0.2% |      0.01 | `MuHashFinalize`
    212|           19,165.12 |           52,178.13 |    4.1% |      0.01 | `MuHashMul`
    213|              932.36 |        1,072,542.51 |    4.9% |      0.01 | `MuHashPrecompute`
    214
    215|             ns/byte |              byte/s |    err% |     total | benchmark
    216|--------------------:|--------------------:|--------:|----------:|:----------
    217|                0.02 |   44,499,578,618.09 |    0.4% |      0.01 | `ObfuscationBench`
    218
    219|               ns/op |                op/s |    err% |     total | benchmark
    220|--------------------:|--------------------:|--------:|----------:|:----------
    221|       24,853,800.00 |               40.24 |    0.0% |      0.02 | `OrphanageEraseForBlock`
    222|        8,055,900.00 |              124.13 |    0.0% |      0.01 | `OrphanageEraseForPeer`
    223|        8,103,300.00 |              123.41 |    0.0% |      0.01 | `OrphanageMultiPeerEviction`
    224|          741,700.00 |            1,348.25 |    0.0% |      0.00 | `OrphanageSinglePeerEviction`
    225
    226|             ns/byte |              byte/s |    err% |     total | benchmark
    227|--------------------:|--------------------:|--------:|----------:|:----------
    228|                0.70 |    1,436,012,051.49 |    3.9% |      0.01 | `POLY1305_1MB`
    229|                0.75 |    1,337,172,194.27 |    1.5% |      0.01 | `POLY1305_256BYTES`
    230|                0.99 |    1,012,746,607.99 |    0.8% |      0.01 | `POLY1305_64BYTES`
    231
    232|               ns/op |                op/s |    err% |     total | benchmark
    233|--------------------:|--------------------:|--------:|----------:|:----------
    234|               74.43 |       13,435,935.02 |    2.8% |      0.05 | `PoolAllocator_StdUnorderedMap`
    235|               23.94 |       41,774,002.65 |    2.7% |      0.02 | `PoolAllocator_StdUnorderedMapWithPoolResource`
    236|              837.66 |        1,193,799.94 |    1.0% |      0.01 | `PostLinearize16TxWorstCase`
    237|            2,793.77 |          357,939.06 |    4.1% |      0.01 | `PostLinearize32TxWorstCase`
    238|            6,151.00 |          162,575.19 |    4.4% |      0.01 | `PostLinearize48TxWorstCase`
    239|           10,197.59 |           98,062.38 |    3.3% |      0.01 | `PostLinearize64TxWorstCase`
    240|           13,336.62 |           74,981.52 |    1.4% |      0.01 | `PostLinearize75TxWorstCase`
    241|           21,982.50 |           45,490.73 |    0.6% |      0.01 | `PostLinearize99TxWorstCase`
    242|              233.80 |        4,277,164.38 |    8.7% |      0.01 | :wavy_dash: `PrePadded` (Unstable with ~4,344.4 iters. Increase `minEpochIterations` to e.g. 43444)
    243|                8.78 |      113,914,290.53 |   12.8% |      0.01 | :wavy_dash: `PrevectorClearNontrivial` (Unstable with ~59,749.5 iters. Increase `minEpochIterations` to e.g. 597495)
    244|                6.34 |      157,752,831.72 |    3.6% |      0.01 | `PrevectorClearTrivial`
    245|              151.85 |        6,585,446.16 |    1.1% |      0.01 | `PrevectorDeserializeNontrivial`
    246|               12.26 |       81,573,896.35 |    1.7% |      0.01 | `PrevectorDeserializeTrivial`
    247|                   - |                   - |       - |         - | :boom: `PrevectorDestructorNontrivial` (iterations overflow. Maybe your code got optimized away?)
    248|                   - |                   - |       - |         - | :boom: `PrevectorDestructorTrivial` (iterations overflow. Maybe your code got optimized away?)
    249|            3,030.00 |          330,033.00 |    0.6% |      0.01 | `PrevectorFillVectorDirectNontrivial`
    250|              892.58 |        1,120,346.95 |    0.3% |      0.01 | `PrevectorFillVectorDirectTrivial`
    251|           15,746.00 |           63,508.19 |    1.3% |      0.01 | `PrevectorFillVectorIndirectNontrivial`
    252|           14,486.15 |           69,031.44 |    2.9% |      0.01 | `PrevectorFillVectorIndirectTrivial`
    253|                3.80 |      263,020,209.20 |    1.4% |      0.01 | `PrevectorResizeNontrivial`
    254|                3.09 |      323,837,259.10 |    0.7% |      0.01 | `PrevectorResizeTrivial`
    255|        6,568,900.00 |              152.23 |    1.1% |      0.08 | `ReadBlockBench`
    256|        1,615,300.00 |              619.08 |    9.6% |      0.02 | :wavy_dash: `ReadRawBlockBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)
    257|              420.26 |        2,379,495.03 |    4.2% |      0.01 | `RegularPadded`
    258|              449.27 |        2,225,845.02 |    0.6% |      0.01 | `RollingBloom`
    259|           28,907.89 |           34,592.63 |    0.2% |      0.01 | `RollingBloomReset`
    260|       15,066,000.00 |               66.37 |    0.7% |      0.17 | `RpcMempool`
    261
    262|             ns/byte |              byte/s |    err% |     total | benchmark
    263|--------------------:|--------------------:|--------:|----------:|:----------
    264|                1.74 |      574,415,532.20 |    1.2% |      0.02 | `SHA1`
    265|                9.15 |      109,308,648.15 |    1.7% |      0.01 | `SHA256D64_1024_AVX2 using the 'sse4(1way)' SHA256 implementation`
    266|                9.16 |      109,117,549.12 |    2.1% |      0.01 | `SHA256D64_1024_SHANI using the 'sse4(1way)' SHA256 implementation`
    267|                9.04 |      110,618,617.60 |    0.8% |      0.01 | `SHA256D64_1024_SSE4 using the 'sse4(1way)' SHA256 implementation`
    268|               11.32 |       88,359,174.87 |    0.6% |      0.01 | `SHA256D64_1024_STANDARD using the 'standard' SHA256 implementation`
    269|                6.86 |      145,720,281.45 |    6.1% |      0.01 | :wavy_dash: `SHA256_32b_AVX2 using the 'sse4(1way)' SHA256 implementation` (Unstable with ~4,179.5 iters. Increase `minEpochIterations` to e.g. 41795)
    270|                6.75 |      148,211,720.90 |    3.9% |      0.01 | `SHA256_32b_SHANI using the 'sse4(1way)' SHA256 implementation`
    271|                6.50 |      153,826,170.01 |    0.3% |      0.01 | `SHA256_32b_SSE4 using the 'sse4(1way)' SHA256 implementation`
    272|                9.35 |      106,922,385.38 |    0.2% |      0.01 | `SHA256_32b_STANDARD using the 'standard' SHA256 implementation`
    273|                2.92 |      342,348,510.78 |    1.4% |      0.03 | `SHA256_AVX2 using the 'sse4(1way)' SHA256 implementation`
    274|                2.96 |      337,541,348.82 |    2.8% |      0.03 | `SHA256_SHANI using the 'sse4(1way)' SHA256 implementation`
    275|                2.95 |      339,523,987.37 |    1.7% |      0.03 | `SHA256_SSE4 using the 'sse4(1way)' SHA256 implementation`
    276|                4.36 |      229,247,380.85 |    1.1% |      0.05 | `SHA256_STANDARD using the 'standard' SHA256 implementation`
    277|                3.92 |      255,063,000.56 |    2.4% |      0.05 | `SHA3_256_1M`
    278|                2.60 |      385,015,208.10 |    2.6% |      0.03 | `SHA512`
    279
    280|               ns/op |                op/s |    err% |     total | benchmark
    281|--------------------:|--------------------:|--------:|----------:|:----------
    282|          108,296.49 |            9,233.91 |    0.4% |      0.13 | `SignSchnorrWithMerkleRoot`
    283|          108,620.59 |            9,206.36 |    0.8% |      0.13 | `SignSchnorrWithNullMerkleRoot`
    284|          190,794.39 |            5,241.24 |    3.0% |      0.23 | `SignTransactionECDSA`
    285|          137,775.24 |            7,258.20 |    0.5% |      0.17 | `SignTransactionSchnorr`
    286|               31.14 |       32,113,941.55 |    6.5% |      0.01 | :wavy_dash: `SipHash_32b` (Unstable with ~30,618.5 iters. Increase `minEpochIterations` to e.g. 306185)
    287|                9.23 |      108,384,801.58 |    6.0% |      0.02 | :wavy_dash: `Trig` (Unstable with ~187,765.5 iters. Increase `minEpochIterations` to e.g. 1877655)
    288|       28,278,000.00 |               35.36 |    0.0% |      0.03 | `TxGraphTrim`
    289|          102,250.00 |            9,779.95 |    0.5% |      0.01 | `VerifyNestedIfScript`
    290|           41,344.44 |           24,187.05 |    1.7% |      0.01 | `VerifyScriptBench`
    291|       72,342,700.00 |               13.82 |    0.3% |      0.80 | `WalletAvailableCoins`
    292|            6,493.75 |          153,994.23 |    4.4% |      0.01 | `WalletBalanceClean`
    293|            6,882.52 |          145,295.67 |    1.4% |      0.01 | `WalletBalanceDirty`
    294|            7,061.03 |          141,622.41 |   10.3% |      0.01 | :wavy_dash: `WalletBalanceMine` (Unstable with ~108.5 iters. Increase `minEpochIterations` to e.g. 1085)
    295|               78.27 |       12,776,287.80 |    0.7% |      0.01 | `WalletBalanceWatch`
    296|    1,101,592,500.00 |                0.91 |    0.3% |     12.15 | `WalletCreateEncrypted`
    297|      780,882,100.00 |                1.28 |    1.9% |      8.53 | `WalletCreatePlain`
    298|        1,724,300.00 |              579.95 |    1.5% |      0.02 | `WalletCreateTxUseOnlyPresetInputs`
    299|      125,178,300.00 |                7.99 |    2.7% |      1.40 | `WalletCreateTxUsePresetInputsAndCoinSelection`
    300|              104.93 |        9,529,737.21 |    0.3% |      0.01 | `WalletIsMineDescriptors`
    301|              104.95 |        9,527,988.87 |    0.3% |      0.01 | `WalletIsMineMigratedDescriptors`
    302|      445,204,800.00 |                2.25 |    0.5% |      2.22 | `WalletLoadingDescriptors`
    303|    7,056,696,700.00 |                0.14 |    0.0% |      7.06 | `WalletMigration`
    304|       10,330,300.00 |               96.80 |    2.1% |      0.11 | `WriteBlockBench`
    
  55. DrahtBot added the label Needs rebase on Nov 4, 2025
  56. cmake: Always link `bitcoinqt` to `shlwapi` when building for Windows be4d3a3fd7
  57. cmake: Explicitly disable `__int128` when building on Windows
    MSVC does not support `__int128` by design, while clang-cl offers only
    limited support out of the box: `__int128` division requires the
    builtins library.
    
    For now, disable the use of `__int128` when building on Windows.
    c610379f2d
  58. cmake: Adjust diagnostic flags for clang-cl
    Being compatible with cl.exe, clang-cl supports most of the same
    command-line options. These options are typically guarded by the `MSVC`
    CMake variable.
    
    Options not supported by clang-cl, such as `/wdNNN`, are now guarded by
    `CMAKE_CXX_COMPILER_ID STREQUAL "MSVC"`.
    
    Additionally, `-Wno-unused-member-function` is now used when compiling
    leveldb with clang-cl.
    14b2d1556e
  59. ci: Test building with clang-cl a1469e6c43
  60. hebasto force-pushed on Nov 4, 2025
  61. hebasto commented at 5:52 pm on November 4, 2025: member
    Rebased to resolve the conflict with the merged bitcoin/bitcoin#30595.
  62. DrahtBot removed the label Needs rebase on Nov 4, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-11-09 18:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me