From d63fd287ebb5531d02b81b372056d4c57f6e873b Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Wed, 8 Jan 2020 15:52:00 +0100 Subject: [PATCH] trie: update benchmark tests --- trie/trie_test.go | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/trie/trie_test.go b/trie/trie_test.go index b0759b4438..172572dddc 100644 --- a/trie/trie_test.go +++ b/trie/trie_test.go @@ -766,6 +766,58 @@ func benchmarkCommitAfterHashFixedSize(b *testing.B, addresses [][20]byte, accou b.StopTimer() } +func BenchmarkDerefRootFixedSize(b *testing.B) { + b.Run("10", func(b *testing.B) { + b.StopTimer() + acc, add := makeAccounts(20) + for i := 0; i < b.N; i++ { + benchmarkDerefRootFixedSize(b, acc, add) + } + }) + b.Run("100", func(b *testing.B) { + b.StopTimer() + acc, add := makeAccounts(100) + for i := 0; i < b.N; i++ { + benchmarkDerefRootFixedSize(b, acc, add) + } + }) + + b.Run("1K", func(b *testing.B) { + b.StopTimer() + acc, add := makeAccounts(1000) + for i := 0; i < b.N; i++ { + benchmarkDerefRootFixedSize(b, acc, add) + } + }) + b.Run("10K", func(b *testing.B) { + b.StopTimer() + acc, add := makeAccounts(10000) + for i := 0; i < b.N; i++ { + benchmarkDerefRootFixedSize(b, acc, add) + } + }) + b.Run("100K", func(b *testing.B) { + b.StopTimer() + acc, add := makeAccounts(100000) + for i := 0; i < b.N; i++ { + benchmarkDerefRootFixedSize(b, acc, add) + } + }) +} + +func benchmarkDerefRootFixedSize(b *testing.B, addresses [][20]byte, accounts [][]byte) { + b.ReportAllocs() + trie := newEmpty() + for i := 0; i < len(addresses); i++ { + trie.Update(crypto.Keccak256(addresses[i][:]), accounts[i]) + } + h := trie.Hash() + trie.Commit(nil) + b.StartTimer() + trie.db.Dereference(h) + b.StopTimer() +} + func tempDB() (string, *Database) { dir, err := ioutil.TempDir("", "trie-bench") if err != nil {