BlogDocs

speedup string parsing by copying serde a little(#58)

Merged
Comparing
string-parsing-speedup
(
e5112ef
) with
main
(
0b21d4a
)
+19%
IMPROVEMENTS
1
REGRESSIONS
0
UNTOUCHED
44
NEW
6
DROPPED
0
IGNORED
0

Benchmarks

Improved

x100_jiter_iter
crates/jiter/benches/main.rs::x100_jiter_iter
+19%
1.4 µs
1.2 µs

New

sentence_jiter_iter
crates/jiter/benches/main.rs::sentence_jiter_iter
N/A
N/A
18.3 µs
sentence_jiter_value
crates/jiter/benches/main.rs::sentence_jiter_value
N/A
N/A
20.4 µs
sentence_serde_value
crates/jiter/benches/main.rs::sentence_serde_value
N/A
N/A
24.4 µs
x100_serde_iter
crates/jiter/benches/main.rs::x100_serde_iter
N/A
N/A
5.9 µs
python_parse_x100
crates/jiter/benches/python.rs::python_parse_x100
N/A
N/A
10 µs
python_parse_x100_not_cached
crates/jiter/benches/python.rs::python_parse_x100_not_cached
N/A
N/A
9.7 µs

Passed

string_array_jiter_iter
crates/jiter/benches/main.rs::string_array_jiter_iter
+8%
8.7 µs
8 µs
x100_jiter_value
crates/jiter/benches/main.rs::x100_jiter_value
+6%
3.4 µs
3.2 µs
medium_response_jiter_value
crates/jiter/benches/main.rs::medium_response_jiter_value
+5%
56.5 µs
53.7 µs
python_parse_medium_response
crates/jiter/benches/python.rs::python_parse_medium_response
+5%
58.5 µs
55.9 µs
python_parse_string_array_unique
crates/jiter/benches/python.rs::python_parse_string_array_unique
+4%
2.6 ms
2.4 ms
true_object_jiter_iter
crates/jiter/benches/main.rs::true_object_jiter_iter
+4%
21.6 µs
20.8 µs
python_parse_medium_response_not_cached
crates/jiter/benches/python.rs::python_parse_medium_response_not_cached
+4%
76.1 µs
73.3 µs
python_parse_true_array
crates/jiter/benches/python.rs::python_parse_true_array
+3%
18.4 µs
17.9 µs
python_parse_string_array_unique_not_cached
crates/jiter/benches/python.rs::python_parse_string_array_unique_not_cached
+3%
4.4 ms
4.3 ms
python_parse_string_array
crates/jiter/benches/python.rs::python_parse_string_array
+2%
27.2 µs
26.6 µs
string_array_jiter_value
crates/jiter/benches/main.rs::string_array_jiter_value
+2%
40.3 µs
39.5 µs
true_array_jiter_value
crates/jiter/benches/main.rs::true_array_jiter_value
+2%
16.9 µs
16.6 µs
true_object_jiter_value
crates/jiter/benches/main.rs::true_object_jiter_value
+1%
50.5 µs
49.8 µs
big_jiter_iter
crates/jiter/benches/main.rs::big_jiter_iter
+1%
36.6 ms
36.1 ms
big_jiter_value
crates/jiter/benches/main.rs::big_jiter_value
+1%
55.4 ms
54.6 ms
lazy_map_lookup_2_20
crates/jiter/benches/main.rs::lazy_map_lookup_2_20
+1%
25.4 µs
25.1 µs
python_parse_string_array_not_cached
crates/jiter/benches/python.rs::python_parse_string_array_not_cached
+1%
47.6 µs
47.1 µs
big_serde_value
crates/jiter/benches/main.rs::big_serde_value
+1%
208.7 ms
206.6 ms
pass1_jiter_value
crates/jiter/benches/main.rs::pass1_jiter_value
+1%
44.3 µs
43.9 µs
python_parse_true_object_not_cached
crates/jiter/benches/python.rs::python_parse_true_object_not_cached
+1%
77.3 µs
76.5 µs
x100_serde_value
crates/jiter/benches/main.rs::x100_serde_value
+1%
3.4 µs
3.4 µs
pass1_serde_value
crates/jiter/benches/main.rs::pass1_serde_value
0%
71.1 µs
70.8 µs
python_parse_true_object
crates/jiter/benches/python.rs::python_parse_true_object
0%
59 µs
58.8 µs
bigints_array_jiter_value
crates/jiter/benches/main.rs::bigints_array_jiter_value
0%
232.4 µs
231.9 µs
string_array_serde_value
crates/jiter/benches/main.rs::string_array_serde_value
0%
50.9 µs
50.8 µs
floats_array_jiter_value
crates/jiter/benches/main.rs::floats_array_jiter_value
0%
317.7 µs
317.3 µs
medium_response_serde_value
crates/jiter/benches/main.rs::medium_response_serde_value
0%
85.6 µs
85.5 µs
massive_ints_array_jiter_value
crates/jiter/benches/main.rs::massive_ints_array_jiter_value
0%
958.1 µs
957.3 µs
true_object_serde_value
crates/jiter/benches/main.rs::true_object_serde_value
0%
77.8 µs
77.8 µs
massive_ints_array_jiter_iter
crates/jiter/benches/main.rs::massive_ints_array_jiter_iter
0%
743.9 µs
743.9 µs
bigints_array_jiter_iter
crates/jiter/benches/main.rs::bigints_array_jiter_iter
0%
147.3 µs
147.3 µs
true_array_jiter_iter
crates/jiter/benches/main.rs::true_array_jiter_iter
0%
4.9 µs
4.9 µs
floats_array_serde_value
crates/jiter/benches/main.rs::floats_array_serde_value
0%
1.1 ms
1.1 ms
floats_array_jiter_iter
crates/jiter/benches/main.rs::floats_array_jiter_iter
0%
179.6 µs
179.7 µs
massive_ints_array_serde_value
crates/jiter/benches/main.rs::massive_ints_array_serde_value
0%
2.2 ms
2.2 ms
true_array_serde_value
crates/jiter/benches/main.rs::true_array_serde_value
0%
24.6 µs
24.6 µs
python_parse_numeric
crates/jiter/benches/python.rs::python_parse_numeric
0%
14.2 µs
14.2 µs
python_parse_other
crates/jiter/benches/python.rs::python_parse_other
0%
7.5 µs
7.5 µs
bigints_array_serde_value
crates/jiter/benches/main.rs::bigints_array_serde_value
0%
736.5 µs
738.1 µs
lazy_map_lookup_3_50
crates/jiter/benches/main.rs::lazy_map_lookup_3_50
0%
51.8 µs
52 µs
pass2_jiter_iter
crates/jiter/benches/main.rs::pass2_jiter_iter
0%
6.5 µs
6.5 µs
lazy_map_lookup_1_10
crates/jiter/benches/main.rs::lazy_map_lookup_1_10
-1%
9 µs
9.1 µs
pass2_serde_value
crates/jiter/benches/main.rs::pass2_serde_value
-2%
15.7 µs
16.1 µs
pass2_jiter_value
crates/jiter/benches/main.rs::pass2_jiter_value
-4%
21.1 µs
22 µs

Commits

Click on a commit to change the comparison range
base
main
0b21d4a
+1%
speedup string parsing by copying serde a little
5758b66
10 months ago
by samuelcolvin
0%
add string benchmark representing a common string
9838dc1
10 months ago
by samuelcolvin
+12%
avoid clearing the tape until it's needed
9b1ba50
10 months ago
by samuelcolvin
0%
add another benchmark
b4f6eba
10 months ago
by samuelcolvin
0%
add python benchmark
c7479af
10 months ago
by samuelcolvin
+6%
separate tape decoding
9510979
10 months ago
by samuelcolvin
0%
extend tests
e5112ef
10 months ago
by samuelcolvin
ResourcesHomePricingDocsBlogGitHubChangelog
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.