Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit 6b1c094

Browse files
committed
Added db benchmarking tool
1 parent e3c56a1 commit 6b1c094

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

ethereum/tests/benchmark_db.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from ethereum import trie, db, utils
2+
import sys
3+
4+
5+
def benchmark(size):
6+
t = trie.Trie(db.EphemDB())
7+
for i in range(size):
8+
t.update(utils.sha3('k'+str(i)), utils.sha3('v'+str(i)))
9+
sz = sum([len(v) for k, v in t.db.db.items()])
10+
nsz = []
11+
for i in range(min(size, 100)):
12+
ldb = db.ListeningDB(t.db.db)
13+
odb = t.db
14+
t.db = ldb
15+
t.get(utils.sha3('k'+str(i)))
16+
nsz.append(sum([len(v) for k, v in ldb.kv.items()]))
17+
t.db = odb
18+
print sz, sum(nsz) // len(nsz)
19+
20+
benchmark(int(sys.argv[1]) if len(sys.argv) > 1 else 1000)

0 commit comments

Comments
 (0)