github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/test/benchmarks/sequencer/eth-transfers/pool_processing_eth_test.go (about) 1 package eth_transfers 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/0xPolygon/supernets2-node/log" 10 "github.com/0xPolygon/supernets2-node/pool" 11 "github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/metrics" 12 "github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/params" 13 "github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/setup" 14 "github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/transactions" 15 "github.com/stretchr/testify/require" 16 ) 17 18 const ( 19 profilingEnabled = false 20 ) 21 22 func BenchmarkSequencerEthTransfersPoolProcess(b *testing.B) { 23 start := time.Now() 24 //defer func() { require.NoError(b, operations.Teardown()) }() 25 opsman, client, pl, auth := setup.Environment(params.Ctx, b) 26 initialCount, err := pl.CountTransactionsByStatus(params.Ctx, pool.TxStatusSelected) 27 require.NoError(b, err) 28 setup.BootstrapSequencer(b, opsman) 29 err = transactions.SendAndWait(params.Ctx, auth, client, pl.CountTransactionsByStatus, params.NumberOfTxs, nil, TxSender) 30 require.NoError(b, err) 31 32 var ( 33 elapsed time.Duration 34 prometheusResponse *http.Response 35 ) 36 37 b.Run(fmt.Sprintf("sequencer_selecting_%d_txs", params.NumberOfTxs), func(b *testing.B) { 38 err = transactions.WaitStatusSelected(pl.CountTransactionsByStatus, initialCount, params.NumberOfTxs) 39 require.NoError(b, err) 40 elapsed = time.Since(start) 41 log.Infof("Total elapsed time: %s", elapsed) 42 prometheusResponse, err = metrics.FetchPrometheus() 43 require.NoError(b, err) 44 }) 45 46 var profilingResult string 47 if profilingEnabled { 48 profilingResult, err = metrics.FetchProfiling() 49 require.NoError(b, err) 50 } 51 52 metrics.CalculateAndPrint(prometheusResponse, profilingResult, elapsed, 0, 0, params.NumberOfTxs) 53 fmt.Printf("%s\n", profilingResult) 54 }