github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/state/stateutil/benchmark_test.go (about)

     1  package stateutil_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/prysmaticlabs/prysm/shared/hashutil"
     7  	"github.com/prysmaticlabs/prysm/shared/htrutils"
     8  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
     9  )
    10  
    11  func BenchmarkMerkleize_Buffered(b *testing.B) {
    12  	roots := make([][32]byte, 8192)
    13  	for i := 0; i < 8192; i++ {
    14  		roots[0] = [32]byte{byte(i)}
    15  	}
    16  
    17  	newMerkleize := func(chunks [][32]byte, count uint64, limit uint64) ([32]byte, error) {
    18  		leafIndexer := func(i uint64) []byte {
    19  			return chunks[i][:]
    20  		}
    21  		return htrutils.Merkleize(htrutils.NewHasherFunc(hashutil.CustomSHA256Hasher()), count, limit, leafIndexer), nil
    22  	}
    23  
    24  	b.ResetTimer()
    25  	b.ReportAllocs()
    26  	for i := 0; i < b.N; i++ {
    27  		_, err := newMerkleize(roots, 8192, 8192)
    28  		require.NoError(b, err)
    29  	}
    30  }