Skip to content

Commit 1a9dc1b

Browse files
committed
⚡ demo: benchmark demo
1 parent 429a495 commit 1a9dc1b

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

demo/benchmark.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from datetime import datetime
2+
from transpose import Transpose
3+
4+
from datetime import datetime
5+
from transpose.extras import Plot
6+
api = Transpose('API_KEY')
7+
8+
def run_benchmark(page_size: int):
9+
api.block.blocks_by_number(order='desc', limit=page_size)
10+
runs = []
11+
12+
for _ in range(10):
13+
start = datetime.now()
14+
try:
15+
api.block.blocks_by_number(order='desc', limit=page_size)
16+
except Exception:
17+
pass
18+
end = datetime.now()
19+
20+
ms_per_record = (end - start).total_seconds() * 1000 / page_size
21+
runs.append(ms_per_record)
22+
23+
print(f'Page size: {page_size}, Avg. ms per record: {sum(runs) / len(runs)} w/ {len(runs)} runs')
24+
return sum(runs) / len(runs)
25+
26+
results = []
27+
for i in range(100, 10000, 100):
28+
results.append(run_benchmark(i))
29+
30+
chart = Plot(title="Page size benchmark")
31+
32+
chart.add_data(
33+
data={
34+
"x": list(range(100, 10000, 100)),
35+
"y": results,
36+
"x_axis": "PAGE_SIZE",
37+
"y_axis": "MS PER RECORD",
38+
},
39+
type="bar",
40+
)
41+
42+
chart.render("benchmark.png")
-217 KB
Binary file not shown.

0 commit comments

Comments
 (0)