package mpt import ( "testing" "github.com/nspcc-dev/neo-go/internal/random" ) func benchmarkBytes(b *testing.B, n Node) { inv := n.(interface{ invalidateCache() }) b.ReportAllocs() b.ResetTimer() for i := 0; i < b.N; i++ { inv.invalidateCache() _ = n.Bytes() } } func BenchmarkBytes(b *testing.B) { b.Run("extension", func(b *testing.B) { n := NewExtensionNode(random.Bytes(10), NewLeafNode(random.Bytes(10))) benchmarkBytes(b, n) }) b.Run("leaf", func(b *testing.B) { n := NewLeafNode(make([]byte, 15)) benchmarkBytes(b, n) }) b.Run("hash", func(b *testing.B) { n := NewHashNode(random.Uint256()) benchmarkBytes(b, n) }) b.Run("branch", func(b *testing.B) { n := NewBranchNode() n.Children[0] = NewLeafNode(random.Bytes(10)) n.Children[4] = NewLeafNode(random.Bytes(10)) n.Children[7] = NewLeafNode(random.Bytes(10)) n.Children[8] = NewLeafNode(random.Bytes(10)) }) }