BlogDocs

convert skip to iterate instead of call recursive functions(#111)

Merged
Merging
dh/iter-skip
(
aa6b268
) into
main
(
366d16a
)
+67%
IMPROVEMENTS
4
REGRESSIONS
0
UNTOUCHED
69
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Improved

pass2_jiter_skip
crates/jiter/benches/main.rs::pass2_jiter_skip
+67%
3.5 µs
2.1 µs
big_jiter_skip
crates/jiter/benches/main.rs::big_jiter_skip
+12%
19.6 ms
17.5 ms
short_numbers_jiter_skip
crates/jiter/benches/main.rs::short_numbers_jiter_skip
+11%
61 µs
55.1 µs
x100_jiter_skip
crates/jiter/benches/main.rs::x100_jiter_skip
+10%
1.3 µs
1.2 µs

Passed

sentence_jiter_iter
crates/jiter/benches/main.rs::sentence_jiter_iter
+8%
7.6 µs
7.1 µs
true_array_jiter_skip
crates/jiter/benches/main.rs::true_array_jiter_skip
+7%
4.9 µs
4.6 µs
python_parse_massive_ints_array
crates/jiter/benches/python.rs::python_parse_massive_ints_array
+7%
1.3 ms
1.2 ms
bigints_array_jiter_skip
crates/jiter/benches/main.rs::bigints_array_jiter_skip
+7%
95.3 µs
89.4 µs
floats_array_jiter_skip
crates/jiter/benches/main.rs::floats_array_jiter_skip
+6%
108.2 µs
102.4 µs
medium_response_jiter_skip
crates/jiter/benches/main.rs::medium_response_jiter_skip
+6%
17.3 µs
16.4 µs
string_array_jiter_skip
crates/jiter/benches/main.rs::string_array_jiter_skip
+5%
7.8 µs
7.4 µs
true_object_jiter_skip
crates/jiter/benches/main.rs::true_object_jiter_skip
+5%
12.5 µs
11.9 µs
x100_jiter_iter
crates/jiter/benches/main.rs::x100_jiter_iter
+5%
1.3 µs
1.2 µs
pass1_jiter_skip
crates/jiter/benches/main.rs::pass1_jiter_skip
+4%
13.6 µs
13 µs
big_serde_value
crates/jiter/benches/main.rs::big_serde_value
+4%
208.4 ms
201.2 ms
big_jiter_value
crates/jiter/benches/main.rs::big_jiter_value
+3%
52.2 ms
50.5 ms
x100_serde_iter
crates/jiter/benches/main.rs::x100_serde_iter
+3%
3 µs
2.9 µs
sentence_jiter_skip
crates/jiter/benches/main.rs::sentence_jiter_skip
+3%
2.1 µs
2.1 µs
massive_ints_array_jiter_skip
crates/jiter/benches/main.rs::massive_ints_array_jiter_skip
+3%
225.1 µs
219.3 µs
unicode_jiter_skip
crates/jiter/benches/main.rs::unicode_jiter_skip
+3%
2.3 µs
2.2 µs
big_jiter_iter
crates/jiter/benches/main.rs::big_jiter_iter
+2%
37.2 ms
36.5 ms
x100_serde_value
crates/jiter/benches/main.rs::x100_serde_value
+2%
3.6 µs
3.5 µs
short_numbers_serde_value
crates/jiter/benches/main.rs::short_numbers_serde_value
+1%
560.7 µs
555 µs
medium_response_jiter_value
crates/jiter/benches/main.rs::medium_response_jiter_value
+1%
42.1 µs
41.8 µs
true_object_serde_value
crates/jiter/benches/main.rs::true_object_serde_value
+1%
78.7 µs
78.3 µs
python_parse_true_object_not_cached
crates/jiter/benches/python.rs::python_parse_true_object_not_cached
+1%
71.9 µs
71.5 µs
pass1_serde_value
crates/jiter/benches/main.rs::pass1_serde_value
0%
72 µs
71.7 µs
sentence_serde_value
crates/jiter/benches/main.rs::sentence_serde_value
0%
9.1 µs
9 µs
string_array_serde_value
crates/jiter/benches/main.rs::string_array_serde_value
0%
51 µs
50.8 µs
string_array_jiter_iter
crates/jiter/benches/main.rs::string_array_jiter_iter
0%
8.3 µs
8.3 µs
python_parse_string_array
crates/jiter/benches/python.rs::python_parse_string_array
0%
27 µs
26.9 µs
python_parse_medium_response
crates/jiter/benches/python.rs::python_parse_medium_response
0%
54.2 µs
54.1 µs
floats_array_jiter_iter
crates/jiter/benches/main.rs::floats_array_jiter_iter
0%
184.6 µs
184.5 µs
bigints_array_jiter_value
crates/jiter/benches/main.rs::bigints_array_jiter_value
0%
218.2 µs
218 µs
python_parse_string_array_unique
crates/jiter/benches/python.rs::python_parse_string_array_unique
0%
2.3 ms
2.3 ms
massive_ints_array_jiter_value
crates/jiter/benches/main.rs::massive_ints_array_jiter_value
0%
782.7 µs
782.4 µs
floats_array_serde_value
crates/jiter/benches/main.rs::floats_array_serde_value
0%
1.2 ms
1.2 ms
floats_array_jiter_value
crates/jiter/benches/main.rs::floats_array_jiter_value
0%
313.3 µs
313.3 µs
bigints_array_jiter_iter
crates/jiter/benches/main.rs::bigints_array_jiter_iter
0%
126.4 µs
126.4 µs
lazy_map_lookup_1_10
crates/jiter/benches/main.rs::lazy_map_lookup_1_10
0%
9 µs
9 µs
true_array_jiter_iter
crates/jiter/benches/main.rs::true_array_jiter_iter
0%
5 µs
5 µs
true_object_jiter_iter
crates/jiter/benches/main.rs::true_object_jiter_iter
0%
21.2 µs
21.2 µs
python_parse_string_array_unique_not_cached
crates/jiter/benches/python.rs::python_parse_string_array_unique_not_cached
0%
3.7 ms
3.7 ms
massive_ints_array_jiter_iter
crates/jiter/benches/main.rs::massive_ints_array_jiter_iter
0%
567 µs
567 µs
massive_ints_array_serde_value
crates/jiter/benches/main.rs::massive_ints_array_serde_value
0%
2.3 ms
2.3 ms
true_object_jiter_value
crates/jiter/benches/main.rs::true_object_jiter_value
0%
30.6 µs
30.6 µs
short_numbers_jiter_value
crates/jiter/benches/main.rs::short_numbers_jiter_value
0%
168.9 µs
169 µs
medium_response_serde_value
crates/jiter/benches/main.rs::medium_response_serde_value
0%
85.5 µs
85.6 µs
bigints_array_serde_value
crates/jiter/benches/main.rs::bigints_array_serde_value
0%
741.5 µs
742.5 µs
python_parse_numeric
crates/jiter/benches/python.rs::python_parse_numeric
0%
13.6 µs
13.6 µs
unicode_serde_value
crates/jiter/benches/main.rs::unicode_serde_value
0%
9.4 µs
9.4 µs
python_parse_true_array
crates/jiter/benches/python.rs::python_parse_true_array
0%
16.9 µs
16.9 µs
python_parse_other
crates/jiter/benches/python.rs::python_parse_other
0%
6.6 µs
6.6 µs
lazy_map_lookup_3_50
crates/jiter/benches/main.rs::lazy_map_lookup_3_50
0%
52.2 µs
52.4 µs
string_array_jiter_value_owned
crates/jiter/benches/main.rs::string_array_jiter_value_owned
-1%
41.4 µs
41.6 µs
python_parse_true_object
crates/jiter/benches/python.rs::python_parse_true_object
-1%
53.2 µs
53.5 µs
python_parse_string_array_not_cached
crates/jiter/benches/python.rs::python_parse_string_array_not_cached
-1%
40.5 µs
40.7 µs
medium_response_jiter_value_owned
crates/jiter/benches/main.rs::medium_response_jiter_value_owned
-1%
56.3 µs
56.8 µs
true_array_serde_value
crates/jiter/benches/main.rs::true_array_serde_value
-1%
23.8 µs
24.1 µs
python_parse_medium_response_not_cached
crates/jiter/benches/python.rs::python_parse_medium_response_not_cached
-1%
64.3 µs
65 µs
string_array_jiter_value
crates/jiter/benches/main.rs::string_array_jiter_value
-1%
20 µs
20.2 µs
pass1_jiter_value
crates/jiter/benches/main.rs::pass1_jiter_value
-2%
36.9 µs
37.5 µs
lazy_map_lookup_2_20
crates/jiter/benches/main.rs::lazy_map_lookup_2_20
-2%
24.9 µs
25.3 µs
true_array_jiter_value
crates/jiter/benches/main.rs::true_array_jiter_value
-2%
16.6 µs
16.9 µs
pass2_jiter_iter
crates/jiter/benches/main.rs::pass2_jiter_iter
-2%
6.4 µs
6.5 µs
pass2_serde_value
crates/jiter/benches/main.rs::pass2_serde_value
-2%
15.7 µs
16 µs
x100_jiter_value
crates/jiter/benches/main.rs::x100_jiter_value
-2%
1.5 µs
1.5 µs
python_parse_x100
crates/jiter/benches/python.rs::python_parse_x100
-2%
3.6 µs
3.7 µs
unicode_jiter_value
crates/jiter/benches/main.rs::unicode_jiter_value
-3%
9.1 µs
9.3 µs
pass2_jiter_value
crates/jiter/benches/main.rs::pass2_jiter_value
-3%
22.6 µs
23.3 µs
sentence_jiter_value
crates/jiter/benches/main.rs::sentence_jiter_value
-3%
8.1 µs
8.3 µs
unicode_jiter_iter
crates/jiter/benches/main.rs::unicode_jiter_iter
-4%
7.7 µs
8 µs
python_parse_x100_not_cached
crates/jiter/benches/python.rs::python_parse_x100_not_cached
-4%
3.4 µs
3.5 µs

Commits

Click on a commit to change the comparison range
base
main
366d16a
-23%
convert skip to iterate instead of call recursive functions
1194b3e
4 months ago
by davidhewitt
+130%
try bitvec to avoid allocation
c54e14b
4 months ago
by davidhewitt
-118%
avoid stack growth for simple cases
8edf5e0
4 months ago
by davidhewitt
+77%
try fix recursion limit calc
aa6b268
4 months ago
by davidhewitt
ResourcesHomePricingDocsBlogGitHubChangelog