mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-03 11:45:18 +00:00
* Updated mocks * add reactor tests * add v1 reactor tests * Fix fuzz test for priority mempool * e2e adapted to mempool v1; prio pool is default now * Reverted default mempool to be fifo * Changed buf version * Added priority mempool to ci testnet * Fixed linter * Updated makefile * Aligned makefile changes to v0.34.x * Added go install for proto * Add log message to warn about prioritized mempool bug Signed-off-by: Thane Thomson <connect@thanethomson.com> * Changelog message Co-authored-by: Jasmina Malicevic <jasmina.dustinac@gmail.com> Co-authored-by: Callum Waters <cmwaters19@gmail.com> Co-authored-by: Sam Kleinman <garen@tychoish.com> Co-authored-by: Thane Thomson <connect@thanethomson.com>
102 lines
2.1 KiB
Go
102 lines
2.1 KiB
Go
package v0
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"sync/atomic"
|
|
"testing"
|
|
|
|
"github.com/tendermint/tendermint/abci/example/kvstore"
|
|
"github.com/tendermint/tendermint/mempool"
|
|
"github.com/tendermint/tendermint/proxy"
|
|
)
|
|
|
|
func BenchmarkReap(b *testing.B) {
|
|
app := kvstore.NewApplication()
|
|
cc := proxy.NewLocalClientCreator(app)
|
|
mp, cleanup := newMempoolWithApp(cc)
|
|
defer cleanup()
|
|
|
|
mp.config.Size = 100000
|
|
|
|
size := 10000
|
|
for i := 0; i < size; i++ {
|
|
tx := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(tx, uint64(i))
|
|
if err := mp.CheckTx(tx, nil, mempool.TxInfo{}); err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
}
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
mp.ReapMaxBytesMaxGas(100000000, 10000000)
|
|
}
|
|
}
|
|
|
|
func BenchmarkCheckTx(b *testing.B) {
|
|
app := kvstore.NewApplication()
|
|
cc := proxy.NewLocalClientCreator(app)
|
|
mp, cleanup := newMempoolWithApp(cc)
|
|
defer cleanup()
|
|
|
|
mp.config.Size = 1000000
|
|
|
|
b.ResetTimer()
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
b.StopTimer()
|
|
tx := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(tx, uint64(i))
|
|
b.StartTimer()
|
|
|
|
if err := mp.CheckTx(tx, nil, mempool.TxInfo{}); err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkParallelCheckTx(b *testing.B) {
|
|
app := kvstore.NewApplication()
|
|
cc := proxy.NewLocalClientCreator(app)
|
|
mp, cleanup := newMempoolWithApp(cc)
|
|
defer cleanup()
|
|
|
|
mp.config.Size = 100000000
|
|
|
|
var txcnt uint64
|
|
next := func() uint64 {
|
|
return atomic.AddUint64(&txcnt, 1) - 1
|
|
}
|
|
|
|
b.ResetTimer()
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
for pb.Next() {
|
|
tx := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(tx, next())
|
|
if err := mp.CheckTx(tx, nil, mempool.TxInfo{}); err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
func BenchmarkCheckDuplicateTx(b *testing.B) {
|
|
app := kvstore.NewApplication()
|
|
cc := proxy.NewLocalClientCreator(app)
|
|
mp, cleanup := newMempoolWithApp(cc)
|
|
defer cleanup()
|
|
|
|
mp.config.Size = 1000000
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
tx := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(tx, uint64(i))
|
|
if err := mp.CheckTx(tx, nil, mempool.TxInfo{}); err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
|
|
if err := mp.CheckTx(tx, nil, mempool.TxInfo{}); err == nil {
|
|
b.Fatal("tx should be duplicate")
|
|
}
|
|
}
|
|
}
|