github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/keeper/keeper_bench_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  )
     8  
     9  func BenchmarkAccountMapperGetAccountFound(b *testing.B) {
    10  	app, ctx := createTestApp(false)
    11  
    12  	// assumes b.N < 2**24
    13  	for i := 0; i < b.N; i++ {
    14  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    15  		addr := sdk.AccAddress(arr)
    16  		acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
    17  		app.AccountKeeper.SetAccount(ctx, acc)
    18  	}
    19  
    20  	b.ResetTimer()
    21  	for i := 0; i < b.N; i++ {
    22  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    23  		app.AccountKeeper.GetAccount(ctx, sdk.AccAddress(arr))
    24  	}
    25  }
    26  
    27  func BenchmarkAccountMapperGetAccountFoundWithCoins(b *testing.B) {
    28  	app, ctx := createTestApp(false)
    29  
    30  	coins := sdk.Coins{
    31  		sdk.NewCoin("ltc", sdk.NewInt(1000)),
    32  		sdk.NewCoin("btc", sdk.NewInt(1000)),
    33  		sdk.NewCoin("eth", sdk.NewInt(1000)),
    34  		sdk.NewCoin("xrp", sdk.NewInt(1000)),
    35  		sdk.NewCoin("bch", sdk.NewInt(1000)),
    36  		sdk.NewCoin("eos", sdk.NewInt(1000)),
    37  	}
    38  
    39  	// assumes b.N < 2**24
    40  	for i := 0; i < b.N; i++ {
    41  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    42  		addr := sdk.AccAddress(arr)
    43  		acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
    44  		acc.SetCoins(coins)
    45  		app.AccountKeeper.SetAccount(ctx, acc)
    46  	}
    47  
    48  	b.ResetTimer()
    49  	for i := 0; i < b.N; i++ {
    50  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    51  		app.AccountKeeper.GetAccount(ctx, sdk.AccAddress(arr))
    52  	}
    53  }
    54  
    55  func BenchmarkAccountMapperSetAccount(b *testing.B) {
    56  	app, ctx := createTestApp(false)
    57  
    58  	b.ResetTimer()
    59  
    60  	// assumes b.N < 2**24
    61  	for i := 0; i < b.N; i++ {
    62  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    63  		addr := sdk.AccAddress(arr)
    64  		acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
    65  		app.AccountKeeper.SetAccount(ctx, acc)
    66  	}
    67  }
    68  
    69  func BenchmarkAccountMapperSetAccountWithCoins(b *testing.B) {
    70  	app, ctx := createTestApp(false)
    71  
    72  	coins := sdk.Coins{
    73  		sdk.NewCoin("ltc", sdk.NewInt(1000)),
    74  		sdk.NewCoin("btc", sdk.NewInt(1000)),
    75  		sdk.NewCoin("eth", sdk.NewInt(1000)),
    76  		sdk.NewCoin("xrp", sdk.NewInt(1000)),
    77  		sdk.NewCoin("bch", sdk.NewInt(1000)),
    78  		sdk.NewCoin("eos", sdk.NewInt(1000)),
    79  	}
    80  
    81  	b.ResetTimer()
    82  
    83  	// assumes b.N < 2**24
    84  	for i := 0; i < b.N; i++ {
    85  		arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)}
    86  		addr := sdk.AccAddress(arr)
    87  		acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
    88  		acc.SetCoins(coins)
    89  		app.AccountKeeper.SetAccount(ctx, acc)
    90  	}
    91  }