Skip to content

Commit 6aeab69

Browse files
committed
chore: add bench script
1 parent bd559a7 commit 6aeab69

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

bench/bench.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import time
2+
3+
from nested_multipart_parser import NestedParser
4+
5+
6+
def bench(data, count):
7+
v = []
8+
for _ in range(count):
9+
start = time.perf_counter()
10+
parser = NestedParser(data)
11+
parser.is_valid()
12+
validate_data = parser.validate_data
13+
end = time.perf_counter()
14+
v.append(end - start)
15+
16+
return sum(v) / len(v)
17+
18+
19+
def big(count):
20+
data = {
21+
"title": "title",
22+
"date": "time",
23+
"langs[0].id": "id",
24+
"langs[0].title": "title",
25+
"langs[0].description": "description",
26+
"langs[0].language": "language",
27+
"langs[1].id": "id1",
28+
"langs[1].title": "title1",
29+
"langs[1].description": "description1",
30+
"langs[1].language": "language1",
31+
"test.langs[0].id": "id",
32+
"test.langs[0].title": "title",
33+
"test.langs[0].description": "description",
34+
"test.langs[0].language": "language",
35+
"test.langs[1].id": "id1",
36+
"test.langs[1].title": "title1",
37+
"test.langs[1].description": "description1",
38+
"test.langs[1].language": "language1",
39+
"deep.nested.dict.test.langs[0].id": "id",
40+
"deep.nested.dict.test.langs[0].title": "title",
41+
"deep.nested.dict.test.langs[0].description": "description",
42+
"deep.nested.dict.test.langs[0].language": "language",
43+
"deep.nested.dict.test.langs[1].id": "id1",
44+
"deep.nested.dict.test.langs[1].title": "title1",
45+
"deep.nested.dict.test.langs[1].description": "description1",
46+
"deep.nested.dict.test.langs[1].language": "language1",
47+
"deep.nested.dict.with.list[0].test.langs[0].id": "id",
48+
"deep.nested.dict.with.list[0].test.langs[0].title": "title",
49+
"deep.nested.dict.with.list[1].test.langs[0].description": "description",
50+
"deep.nested.dict.with.list[1].test.langs[0].language": "language",
51+
"deep.nested.dict.with.list[1].test.langs[1].id": "id1",
52+
"deep.nested.dict.with.list[1].test.langs[1].title": "title1",
53+
"deep.nested.dict.with.list[0].test.langs[1].description": "description1",
54+
"deep.nested.dict.with.list[0].test.langs[1].language": "language1",
55+
}
56+
return bench(data, count)
57+
58+
59+
def small(count):
60+
data = {
61+
"title": "title",
62+
"date": "time",
63+
"langs[0].id": "id",
64+
"langs[0].title": "title",
65+
"langs[0].description": "description",
66+
"langs[0].language": "language",
67+
"langs[1].id": "id1",
68+
"langs[1].title": "title1",
69+
"langs[1].description": "description1",
70+
"langs[1].language": "language1",
71+
}
72+
return bench(data, count)
73+
74+
75+
count = 10_000
76+
print(f"{small(count)=}")
77+
print(f"{big(count)=}")

0 commit comments

Comments
 (0)