BlogDocs

perf: Speedup reference resolving(#564)

Merged
Merging
dd/fewer-allocs
(
e6f3194
) into
master
(
62506bd
)
+24%
IMPROVEMENTS
2
REGRESSIONS
0
UNTOUCHED
37
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Improved

resolve[small]
crates/jsonschema-referencing/benches/anchor.rs::benches::bench_anchor_lookup::Anchor Lookup::resolve[small]
+24%
4.4 µs
3.5 µs
pointer[long]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer::pointer[long]
+22%
17.1 µs
14 µs

Passed

is_valid[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[GeoJSON/Canada]
+2%
9.6 ms
9.5 ms
validate[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[GeoJSON/Canada]
+2%
9.6 ms
9.5 ms
build[Swagger]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::build[Swagger]
+2%
10.5 ms
10.4 ms
build[CITM]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::build[CITM]
+1%
825.3 µs
818.5 µs
try_with_resource[CITM]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_with_resource[CITM]
0%
283.3 µs
282.3 µs
build[Open API]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::build[Open API]
0%
13.6 ms
13.6 ms
try_with_resource[Open API]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_with_resource[Open API]
0%
1.6 ms
1.6 ms
try_new[draft 6]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_new[draft 6]
0%
88.6 µs
88.5 µs
try_new[draft 4]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_new[draft 4]
0%
83.2 µs
83.2 µs
try_new[draft 2020-12]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_new[draft 2020-12]
0%
96.9 µs
96.9 µs
validate[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[CITM/Catalog]
0%
16.1 ms
16.1 ms
try_new[draft 7]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_new[draft 7]
0%
100.9 µs
100.9 µs
try_new[draft 2019-09]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_new[draft 2019-09]
0%
94.4 µs
94.4 µs
subresources_of[CITM]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[CITM]
0%
3.8 µs
3.8 µs
subresources_of[Fast]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[Fast]
0%
3.4 µs
3.4 µs
subresources_of[GeoJSON]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[GeoJSON]
0%
3.7 µs
3.7 µs
subresources_of[Open API]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[Open API]
0%
9.1 µs
9.1 µs
subresources_of[Swagger]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[Swagger]
0%
10.1 µs
10.1 µs
subresources_of[draft 2019-09]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[draft 2019-09]
0%
9.8 µs
9.8 µs
subresources_of[draft 2020-12]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[draft 2020-12]
0%
9.9 µs
9.9 µs
subresources_of[draft 4]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[draft 4]
0%
8.9 µs
8.9 µs
subresources_of[draft 6]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[draft 6]
0%
9.3 µs
9.3 µs
subresources_of[draft 7]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources::subresources_of[draft 7]
0%
9.9 µs
9.9 µs
try_with_resource[GeoJSON]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_with_resource[GeoJSON]
0%
925.3 µs
925.4 µs
is_valid[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[Open API/Zuora]
0%
21.5 ms
21.5 ms
try_with_resource[Swagger]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_with_resource[Swagger]
0%
1.6 ms
1.6 ms
validate[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[Open API/Zuora]
0%
23.2 ms
23.2 ms
is_valid[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[Swagger/Kubernetes]
0%
22.3 ms
22.3 ms
validate[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[Swagger/Kubernetes]
0%
31.8 ms
31.8 ms
is_valid[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[CITM/Catalog]
0%
4.8 ms
4.8 ms
is_valid[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[Fast/Valid]
0%
6.7 µs
6.7 µs
try_with_resource[Fast]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry::try_with_resource[Fast]
-1%
95.2 µs
95.7 µs
build[Fast]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::build[Fast]
-1%
257.7 µs
259.4 µs
build[GeoJSON]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::build[GeoJSON]
-1%
2.3 ms
2.3 ms
validate[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[Fast/Valid]
-1%
14.3 µs
14.5 µs
validate[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::validate[Fast/Invalid]
-1%
18.1 µs
18.3 µs
is_valid[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks::is_valid[Fast/Invalid]
-3%
827.5 ns
856.7 ns

Commits

Click on a commit to change the comparison range
base
master
62506bd
+24%
perf: Speedup reference resolving Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
e6f3194
7 hours ago
by Stranger6667
ResourcesHomePricingDocsBlogGitHubChangelog