From fbffe8a64a96ebd46111157fa5381d7c54fe9aea Mon Sep 17 00:00:00 2001 From: David Gumberg Date: Mon, 13 Apr 2026 21:41:15 +0200 Subject: [PATCH] bench: improve `VerifyNestedIfScript` benchmark precision (make stack clearing untimed) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit on `master`: | ns/op | op/s | err% | ins/op | cyc/op | IPC | bra/op | miss% | total | benchmark |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:---------- | 19,890.59 | 50,275.02 | 1.3% | 673,992.65 | 85,238.74 | 7.907 | 143,404.89 | 0.0% | 0.01 | `VerifyNestedIfScript` vs this commit: | ns/script | script/s | err% | ins/script | cyc/script | IPC | bra/script | miss% | total | benchmark |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:---------- | 12,089.00 | 82,719.83 | 0.4% | 375,703.00 | 51,987.00 | 7.227 | 69,249.00 | 0.2% | 0.00 | `VerifyNestedIfScript` Co-authored-by: Lőrinc --- src/bench/verify_script.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/bench/verify_script.cpp b/src/bench/verify_script.cpp index ac636ce86ad..af254ae7783 100644 --- a/src/bench/verify_script.cpp +++ b/src/bench/verify_script.cpp @@ -115,12 +115,13 @@ static void VerifyNestedIfScript(benchmark::Bench& bench) for (int i = 0; i < 100; ++i) { script << OP_ENDIF; } - bench.run([&] { - auto stack_copy = stack; - ScriptError error; - bool ret = EvalScript(stack_copy, script, 0, BaseSignatureChecker(), SigVersion::BASE, &error); - assert(ret); - }); + bench.unit("script").epochIterations(1) + .setup([&] { stack.clear(); }) + .run([&] { + ScriptError error; + const bool ret{EvalScript(stack, script, /*flags=*/0, BaseSignatureChecker(), SigVersion::BASE, &error)}; + assert(ret && error == SCRIPT_ERR_OK); + }); } BENCHMARK(VerifyScriptP2WPKH);