mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 18:30:45 +00:00
all: using testing.B.Loop (#1554)
* p2p: using testing.B.Loop * core/state: using testing.B.Loop * eth: using testing.B.Loop * log: using testing.B.Loop * core: using testing.B.Loop * core/vm: using testing.B.Loop * core/types: using testing.B.Loop * crypto: using testing.B.Loop
This commit is contained in:
parent
d20f91057a
commit
241a5b3fb2
19 changed files with 40 additions and 63 deletions
|
|
@ -245,7 +245,7 @@ func makeChainForBench(db ethdb.Database, full bool, count uint64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func benchWriteChain(b *testing.B, full bool, count uint64) {
|
func benchWriteChain(b *testing.B, full bool, count uint64) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
dir := b.TempDir()
|
dir := b.TempDir()
|
||||||
db, err := rawdb.NewLevelDBDatabase(dir, 128, 1024, "", false)
|
db, err := rawdb.NewLevelDBDatabase(dir, 128, 1024, "", false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -268,9 +268,7 @@ func benchReadChain(b *testing.B, full bool, count uint64) {
|
||||||
db.Close()
|
db.Close()
|
||||||
|
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
db, err := rawdb.NewLevelDBDatabase(dir, 128, 1024, "", false)
|
db, err := rawdb.NewLevelDBDatabase(dir, 128, 1024, "", false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatalf("error opening database at %v: %v", dir, err)
|
b.Fatalf("error opening database at %v: %v", dir, err)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import (
|
||||||
|
|
||||||
func BenchmarkCutOriginal(b *testing.B) {
|
func BenchmarkCutOriginal(b *testing.B) {
|
||||||
value := common.HexToHash("0x01")
|
value := common.HexToHash("0x01")
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
bytes.TrimLeft(value[:], "\x00")
|
bytes.TrimLeft(value[:], "\x00")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -33,14 +33,14 @@ func BenchmarkCutOriginal(b *testing.B) {
|
||||||
func BenchmarkCutsetterFn(b *testing.B) {
|
func BenchmarkCutsetterFn(b *testing.B) {
|
||||||
value := common.HexToHash("0x01")
|
value := common.HexToHash("0x01")
|
||||||
cutSetFn := func(r rune) bool { return r == 0 }
|
cutSetFn := func(r rune) bool { return r == 0 }
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
bytes.TrimLeftFunc(value[:], cutSetFn)
|
bytes.TrimLeftFunc(value[:], cutSetFn)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkCutCustomTrim(b *testing.B) {
|
func BenchmarkCutCustomTrim(b *testing.B) {
|
||||||
value := common.HexToHash("0x01")
|
value := common.HexToHash("0x01")
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
common.TrimLeftZeroes(value[:])
|
common.TrimLeftZeroes(value[:])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -139,9 +139,8 @@ var benchBuffer = bytes.NewBuffer(make([]byte, 0, 32000))
|
||||||
|
|
||||||
func BenchmarkEncodeBlock(b *testing.B) {
|
func BenchmarkEncodeBlock(b *testing.B) {
|
||||||
block := makeBenchBlock()
|
block := makeBenchBlock()
|
||||||
b.ResetTimer()
|
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
benchBuffer.Reset()
|
benchBuffer.Reset()
|
||||||
if err := rlp.Encode(benchBuffer, block); err != nil {
|
if err := rlp.Encode(benchBuffer, block); err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,8 @@ func BenchmarkDeriveSha200(b *testing.B) {
|
||||||
var exp common.Hash
|
var exp common.Hash
|
||||||
var got common.Hash
|
var got common.Hash
|
||||||
b.Run("std_trie", func(b *testing.B) {
|
b.Run("std_trie", func(b *testing.B) {
|
||||||
b.ResetTimer()
|
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
exp = types.DeriveSha(txs, trie.NewEmpty(trie.NewDatabase(rawdb.NewMemoryDatabase())))
|
exp = types.DeriveSha(txs, trie.NewEmpty(trie.NewDatabase(rawdb.NewMemoryDatabase())))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -77,7 +76,7 @@ func BenchmarkDeriveSha200(b *testing.B) {
|
||||||
b.Run("stack_trie", func(b *testing.B) {
|
b.Run("stack_trie", func(b *testing.B) {
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
got = types.DeriveSha(txs, trie.NewStackTrie(nil))
|
got = types.DeriveSha(txs, trie.NewStackTrie(nil))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -605,12 +605,10 @@ func benchmarkPrecompiled(addr string, test precompiledTest, bench *testing.B) {
|
||||||
)
|
)
|
||||||
|
|
||||||
bench.Run(fmt.Sprintf("%s-Gas=%d", test.name, reqGas), func(bench *testing.B) {
|
bench.Run(fmt.Sprintf("%s-Gas=%d", test.name, reqGas), func(bench *testing.B) {
|
||||||
bench.ResetTimer()
|
for bench.Loop() {
|
||||||
for i := 0; i < bench.N; i++ {
|
|
||||||
copy(data, in)
|
copy(data, in)
|
||||||
res, _, err = RunPrecompiledContract(nil, p, data, reqGas, nil)
|
res, _, err = RunPrecompiledContract(nil, p, data, reqGas, nil)
|
||||||
}
|
}
|
||||||
bench.StopTimer()
|
|
||||||
//Check if it is correct
|
//Check if it is correct
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bench.Error(err)
|
bench.Error(err)
|
||||||
|
|
|
||||||
|
|
@ -313,15 +313,13 @@ func opBenchmark(bench *testing.B, op executionFunc, args ...string) {
|
||||||
intArgs[i] = new(uint256.Int).SetBytes(common.Hex2Bytes(arg))
|
intArgs[i] = new(uint256.Int).SetBytes(common.Hex2Bytes(arg))
|
||||||
}
|
}
|
||||||
pc := uint64(0)
|
pc := uint64(0)
|
||||||
bench.ResetTimer()
|
for bench.Loop() {
|
||||||
for i := 0; i < bench.N; i++ {
|
|
||||||
for _, arg := range intArgs {
|
for _, arg := range intArgs {
|
||||||
stack.push(arg)
|
stack.push(arg)
|
||||||
}
|
}
|
||||||
op(&pc, evmInterpreter, scope)
|
op(&pc, evmInterpreter, scope)
|
||||||
stack.pop()
|
stack.pop()
|
||||||
}
|
}
|
||||||
bench.StopTimer()
|
|
||||||
|
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
want := new(uint256.Int).SetBytes(common.Hex2Bytes(arg))
|
want := new(uint256.Int).SetBytes(common.Hex2Bytes(arg))
|
||||||
|
|
@ -579,8 +577,7 @@ func BenchmarkOpMstore(bench *testing.B) {
|
||||||
memStart := new(uint256.Int)
|
memStart := new(uint256.Int)
|
||||||
value := new(uint256.Int).SetUint64(0x1337)
|
value := new(uint256.Int).SetUint64(0x1337)
|
||||||
|
|
||||||
bench.ResetTimer()
|
for bench.Loop() {
|
||||||
for i := 0; i < bench.N; i++ {
|
|
||||||
stack.push(value)
|
stack.push(value)
|
||||||
stack.push(memStart)
|
stack.push(memStart)
|
||||||
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
|
|
@ -642,8 +639,7 @@ func BenchmarkOpKeccak256(bench *testing.B) {
|
||||||
pc := uint64(0)
|
pc := uint64(0)
|
||||||
start := new(uint256.Int)
|
start := new(uint256.Int)
|
||||||
|
|
||||||
bench.ResetTimer()
|
for bench.Loop() {
|
||||||
for i := 0; i < bench.N; i++ {
|
|
||||||
stack.push(uint256.NewInt(32))
|
stack.push(uint256.NewInt(32))
|
||||||
stack.push(start)
|
stack.push(start)
|
||||||
opKeccak256(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
opKeccak256(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
|
||||||
|
|
|
||||||
|
|
@ -149,8 +149,7 @@ func BenchmarkCall(b *testing.B) {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
for j := 0; j < 400; j++ {
|
for j := 0; j < 400; j++ {
|
||||||
Execute(code, cpurchase, nil)
|
Execute(code, cpurchase, nil)
|
||||||
Execute(code, creceived, nil)
|
Execute(code, creceived, nil)
|
||||||
|
|
@ -190,11 +189,9 @@ func benchmarkEVM_Create(bench *testing.B, code string) {
|
||||||
EVMConfig: vm.Config{},
|
EVMConfig: vm.Config{},
|
||||||
}
|
}
|
||||||
// Warm up the intpools and stuff
|
// Warm up the intpools and stuff
|
||||||
bench.ResetTimer()
|
for bench.Loop() {
|
||||||
for i := 0; i < bench.N; i++ {
|
|
||||||
Call(receiver, []byte{}, &runtimeConfig)
|
Call(receiver, []byte{}, &runtimeConfig)
|
||||||
}
|
}
|
||||||
bench.StopTimer()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkEVM_CREATE_500(bench *testing.B) {
|
func BenchmarkEVM_CREATE_500(bench *testing.B) {
|
||||||
|
|
|
||||||
|
|
@ -303,8 +303,7 @@ func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) {
|
||||||
|
|
||||||
data := make([]byte, size)
|
data := make([]byte, size)
|
||||||
b.SetBytes(int64(size))
|
b.SetBytes(int64(size))
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
Sum512(data)
|
Sum512(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -319,8 +318,7 @@ func benchmarkWrite(b *testing.B, size int, sse4, avx, avx2 bool) {
|
||||||
data := make([]byte, size)
|
data := make([]byte, size)
|
||||||
h, _ := New512(nil)
|
h, _ := New512(nil)
|
||||||
b.SetBytes(int64(size))
|
b.SetBytes(int64(size))
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
h.Write(data)
|
h.Write(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ func TestToECDSAErrors(t *testing.T) {
|
||||||
|
|
||||||
func BenchmarkSha3(b *testing.B) {
|
func BenchmarkSha3(b *testing.B) {
|
||||||
a := []byte("hello world")
|
a := []byte("hello world")
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
Keccak256(a)
|
Keccak256(a)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ func TestTooBigSharedKey(t *testing.T) {
|
||||||
|
|
||||||
// Benchmark the generation of P256 keys.
|
// Benchmark the generation of P256 keys.
|
||||||
func BenchmarkGenerateKeyP256(b *testing.B) {
|
func BenchmarkGenerateKeyP256(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
if _, err := GenerateKey(rand.Reader, elliptic.P256(), nil); err != nil {
|
if _, err := GenerateKey(rand.Reader, elliptic.P256(), nil); err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
@ -177,8 +177,7 @@ func BenchmarkGenSharedKeyP256(b *testing.B) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
_, err := prv.GenerateShared(&prv.PublicKey, 16, 16)
|
_, err := prv.GenerateShared(&prv.PublicKey, 16, 16)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|
@ -192,8 +191,7 @@ func BenchmarkGenSharedKeyS256(b *testing.B) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
_, err := prv.GenerateShared(&prv.PublicKey, 16, 16)
|
_, err := prv.GenerateShared(&prv.PublicKey, 16, 16)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|
|
||||||
|
|
@ -221,9 +221,7 @@ func TestRecoverSanity(t *testing.T) {
|
||||||
func BenchmarkSign(b *testing.B) {
|
func BenchmarkSign(b *testing.B) {
|
||||||
_, seckey := generateKeyPair()
|
_, seckey := generateKeyPair()
|
||||||
msg := csprngEntropy(32)
|
msg := csprngEntropy(32)
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
Sign(msg, seckey)
|
Sign(msg, seckey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -232,8 +230,6 @@ func BenchmarkRecover(b *testing.B) {
|
||||||
msg := csprngEntropy(32)
|
msg := csprngEntropy(32)
|
||||||
_, seckey := generateKeyPair()
|
_, seckey := generateKeyPair()
|
||||||
sig, _ := Sign(msg, seckey)
|
sig, _ := Sign(msg, seckey)
|
||||||
b.ResetTimer()
|
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
RecoverPubkey(msg, sig)
|
RecoverPubkey(msg, sig)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ func TestPubkeyRandom(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkEcrecoverSignature(b *testing.B) {
|
func BenchmarkEcrecoverSignature(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
if _, err := Ecrecover(testmsg, testsig); err != nil {
|
if _, err := Ecrecover(testmsg, testsig); err != nil {
|
||||||
b.Fatal("ecrecover error", err)
|
b.Fatal("ecrecover error", err)
|
||||||
}
|
}
|
||||||
|
|
@ -144,7 +144,7 @@ func BenchmarkEcrecoverSignature(b *testing.B) {
|
||||||
|
|
||||||
func BenchmarkVerifySignature(b *testing.B) {
|
func BenchmarkVerifySignature(b *testing.B) {
|
||||||
sig := testsig[:len(testsig)-1] // remove recovery id
|
sig := testsig[:len(testsig)-1] // remove recovery id
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
if !VerifySignature(testpubkey, testmsg, sig) {
|
if !VerifySignature(testpubkey, testmsg, sig) {
|
||||||
b.Fatal("verify error")
|
b.Fatal("verify error")
|
||||||
}
|
}
|
||||||
|
|
@ -152,7 +152,7 @@ func BenchmarkVerifySignature(b *testing.B) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkDecompressPubkey(b *testing.B) {
|
func BenchmarkDecompressPubkey(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
if _, err := DecompressPubkey(testpubkeyc); err != nil {
|
if _, err := DecompressPubkey(testpubkeyc); err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -225,8 +225,7 @@ func benchTracer(tracerName string, test *callTracerTest, b *testing.B) {
|
||||||
state := tests.MakePreState(rawdb.NewMemoryDatabase(), test.Genesis.Alloc)
|
state := tests.MakePreState(rawdb.NewMemoryDatabase(), test.Genesis.Alloc)
|
||||||
|
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
b.ResetTimer()
|
for b.Loop() {
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
tracer, err := tracers.DefaultDirectory.New(tracerName, new(tracers.Context), nil, test.Genesis.Config)
|
tracer, err := tracers.DefaultDirectory.New(tracerName, new(tracers.Context), nil, test.Genesis.Config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatalf("failed to create call tracer: %v", err)
|
b.Fatalf("failed to create call tracer: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ func BenchmarkFlatCallTracer(b *testing.B) {
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
filename := strings.TrimPrefix(file, "testdata/call_tracer_flat/")
|
filename := strings.TrimPrefix(file, "testdata/call_tracer_flat/")
|
||||||
b.Run(camel(strings.TrimSuffix(filename, ".json")), func(b *testing.B) {
|
b.Run(camel(strings.TrimSuffix(filename, ".json")), func(b *testing.B) {
|
||||||
for n := 0; n < b.N; n++ {
|
for b.Loop() {
|
||||||
err := flatCallTracerTestRunner("flatCallTracer", filename, "call_tracer_flat", b)
|
err := flatCallTracerTestRunner("flatCallTracer", filename, "call_tracer_flat", b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|
|
||||||
|
|
@ -93,10 +93,9 @@ func BenchmarkTransactionTrace(b *testing.B) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatalf("failed to prepare transaction for tracing: %v", err)
|
b.Fatalf("failed to prepare transaction for tracing: %v", err)
|
||||||
}
|
}
|
||||||
b.ResetTimer()
|
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
snap := state.Snapshot()
|
snap := state.Snapshot()
|
||||||
tracer.OnTxStart(evm.GetVMContext(), tx, msg.From)
|
tracer.OnTxStart(evm.GetVMContext(), tx, msg.From)
|
||||||
st := core.NewStateTransition(evm, msg, new(core.GasPool).AddGas(tx.Gas()))
|
st := core.NewStateTransition(evm, msg, new(core.GasPool).AddGas(tx.Gas()))
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ var sink []byte
|
||||||
func BenchmarkPrettyInt64Logfmt(b *testing.B) {
|
func BenchmarkPrettyInt64Logfmt(b *testing.B) {
|
||||||
buf := make([]byte, 100)
|
buf := make([]byte, 100)
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
sink = appendInt64(buf, rand.Int63())
|
sink = appendInt64(buf, rand.Int63())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ func BenchmarkPrettyInt64Logfmt(b *testing.B) {
|
||||||
func BenchmarkPrettyUint64Logfmt(b *testing.B) {
|
func BenchmarkPrettyUint64Logfmt(b *testing.B) {
|
||||||
buf := make([]byte, 100)
|
buf := make([]byte, 100)
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
sink = appendUint64(buf, rand.Uint64(), false)
|
sink = appendUint64(buf, rand.Uint64(), false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,9 +70,10 @@ func TestJSONHandler(t *testing.T) {
|
||||||
|
|
||||||
func BenchmarkTraceLogging(b *testing.B) {
|
func BenchmarkTraceLogging(b *testing.B) {
|
||||||
SetDefault(NewLogger(NewTerminalHandler(io.Discard, true)))
|
SetDefault(NewLogger(NewTerminalHandler(io.Discard, true)))
|
||||||
b.ResetTimer()
|
i := 0
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
Trace("a message", "v", i)
|
Trace("a message", "v", i)
|
||||||
|
i++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -99,8 +100,8 @@ func benchmarkLogger(b *testing.B, l Logger) {
|
||||||
err = errors.New("oh nooes it's crap")
|
err = errors.New("oh nooes it's crap")
|
||||||
)
|
)
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
b.ResetTimer()
|
i := 0
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
l.Info("This is a message",
|
l.Info("This is a message",
|
||||||
"foo", int16(i),
|
"foo", int16(i),
|
||||||
"bytes", bb,
|
"bytes", bb,
|
||||||
|
|
@ -109,8 +110,8 @@ func benchmarkLogger(b *testing.B, l Logger) {
|
||||||
"bigint", bigint,
|
"bigint", bigint,
|
||||||
"nilbig", nilbig,
|
"nilbig", nilbig,
|
||||||
"err", err)
|
"err", err)
|
||||||
|
i++
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLoggerOutput(t *testing.T) {
|
func TestLoggerOutput(t *testing.T) {
|
||||||
|
|
@ -161,18 +162,18 @@ const termTimeFormat = "01-02|15:04:05.000"
|
||||||
func BenchmarkAppendFormat(b *testing.B) {
|
func BenchmarkAppendFormat(b *testing.B) {
|
||||||
var now = time.Now()
|
var now = time.Now()
|
||||||
b.Run("fmt time.Format", func(b *testing.B) {
|
b.Run("fmt time.Format", func(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
fmt.Fprintf(io.Discard, "%s", now.Format(termTimeFormat))
|
fmt.Fprintf(io.Discard, "%s", now.Format(termTimeFormat))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
b.Run("time.AppendFormat", func(b *testing.B) {
|
b.Run("time.AppendFormat", func(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
now.AppendFormat(nil, termTimeFormat)
|
now.AppendFormat(nil, termTimeFormat)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
var buf = new(bytes.Buffer)
|
var buf = new(bytes.Buffer)
|
||||||
b.Run("time.Custom", func(b *testing.B) {
|
b.Run("time.Custom", func(b *testing.B) {
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
writeTimeTermFormat(buf, now)
|
writeTimeTermFormat(buf, now)
|
||||||
buf.Reset()
|
buf.Reset()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -310,9 +310,8 @@ func TestSignEncodeAndDecodeRandom(t *testing.T) {
|
||||||
|
|
||||||
func BenchmarkDecode(b *testing.B) {
|
func BenchmarkDecode(b *testing.B) {
|
||||||
var r Record
|
var r Record
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
rlp.DecodeBytes(pyRecord, &r)
|
rlp.DecodeBytes(pyRecord, &r)
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
|
||||||
r.NodeAddr()
|
r.NodeAddr()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ func TestCheckRelayIP(t *testing.T) {
|
||||||
func BenchmarkCheckRelayIP(b *testing.B) {
|
func BenchmarkCheckRelayIP(b *testing.B) {
|
||||||
sender := parseIP("23.55.1.242")
|
sender := parseIP("23.55.1.242")
|
||||||
addr := parseIP("23.55.1.2")
|
addr := parseIP("23.55.1.2")
|
||||||
for i := 0; i < b.N; i++ {
|
for b.Loop() {
|
||||||
CheckRelayIP(sender, addr)
|
CheckRelayIP(sender, addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue