Skip to content

Commit 79bb042

Browse files
committed
Add sorted map benchmarks
1 parent eac8483 commit 79bb042

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

benchmarks/benchmark_sortedmap.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import random
2+
3+
import ctools
4+
5+
max_item = 65536
6+
7+
8+
def get_seq():
9+
seq = list(range(max_item))
10+
random.shuffle(seq)
11+
return seq
12+
13+
14+
def get_map():
15+
return {i: i for i in get_seq()}
16+
17+
18+
def get_sorted_map():
19+
s = ctools.SortedMap()
20+
s.update(get_map())
21+
return s
22+
23+
24+
@benchmark_setup(seq=get_seq)
25+
def benchmark_sorted_map_set(seq):
26+
s = ctools.SortedMap()
27+
for i in seq:
28+
s[i] = i
29+
30+
31+
@benchmark_setup(seq=get_seq)
32+
def benchmark_dict_set(seq):
33+
d = {}
34+
for i in seq:
35+
d[i] = i
36+
37+
38+
@benchmark_setup(v=get_sorted_map)
39+
def benchmark_sorted_map_get(v):
40+
for i in get_seq():
41+
k = v[i]
42+
43+
44+
@benchmark_setup(v=get_map)
45+
def benchmark_dict_get(v):
46+
for i in get_seq():
47+
k = v[i]
48+
49+
50+
@benchmark_setup(v=get_map)
51+
def benchmark_dict_del(v):
52+
for i in get_seq():
53+
del v[i]
54+
55+
56+
@benchmark_setup(v=get_sorted_map)
57+
def benchmark_sorted_map_del(v):
58+
for i in get_seq():
59+
del v[i]

0 commit comments

Comments
 (0)