github.com/Finschia/finschia-sdk@v0.48.1/x/staking/keeper/validator_bench_test.go (about)

     1  package keeper_test
     2  
     3  import "testing"
     4  
     5  func BenchmarkGetValidator(b *testing.B) {
     6  	// 900 is the max number we are allowed to use in order to avoid simapp.CreateTestPubKeys
     7  	// panic: encoding/hex: odd length hex string
     8  	powersNumber := 900
     9  
    10  	var totalPower int64 = 0
    11  	powers := make([]int64, powersNumber)
    12  	for i := range powers {
    13  		powers[i] = int64(i)
    14  		totalPower += int64(i)
    15  	}
    16  
    17  	app, ctx, _, valAddrs, vals := initValidators(b, totalPower, len(powers), powers)
    18  
    19  	for _, validator := range vals {
    20  		app.StakingKeeper.SetValidator(ctx, validator)
    21  	}
    22  
    23  	b.ResetTimer()
    24  	for n := 0; n < b.N; n++ {
    25  		for _, addr := range valAddrs {
    26  			_, _ = app.StakingKeeper.GetValidator(ctx, addr)
    27  		}
    28  	}
    29  }