txscript: Add benchmark for GetPreciseSigOpCount.
This commit is contained in:
parent
4d5c0b2529
commit
cc802d1407
1 changed files with 26 additions and 0 deletions
|
@ -356,3 +356,29 @@ func BenchmarkGetSigOpCount(b *testing.B) {
|
||||||
_ = GetSigOpCount(script)
|
_ = GetSigOpCount(script)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BenchmarkGetPreciseSigOpCount benchmarks how long it takes to count the
|
||||||
|
// signature operations of a very large script using the more precise counting
|
||||||
|
// method.
|
||||||
|
func BenchmarkGetPreciseSigOpCount(b *testing.B) {
|
||||||
|
redeemScript, err := genComplexScript()
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("failed to create benchmark script: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a fake pay-to-script-hash to pass the necessary checks and create
|
||||||
|
// the signature script accordingly by pushing the generated "redeem" script
|
||||||
|
// as the final data push so the benchmark will cover the p2sh path.
|
||||||
|
scriptHash := "0x0000000000000000000000000000000000000001"
|
||||||
|
pkScript := mustParseShortForm("HASH160 DATA_20 " + scriptHash + " EQUAL")
|
||||||
|
sigScript, err := NewScriptBuilder().AddFullData(redeemScript).Script()
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("failed to create signature script: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
b.ResetTimer()
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_ = GetPreciseSigOpCount(sigScript, pkScript, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue