Stranger6667
jsonschema
BlogDocsChangelog

perf: use type guards to avoid descending into nodes

#863Closed
Comparing
dd/type-guards
(
b847dfd
) with
master
(
5f2e617
)
CodSpeed Performance Gauge
-98%
Improvements
1
Regressions
3
Untouched
48
Archived
9

Benchmarks

Failed

is_valid[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
Regression
CodSpeed Performance Gauge
-42%
9.9 ms17.2 ms
validate[FHIR/Fhir]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
Regression
CodSpeed Performance Gauge
-98%
147.4 µs6,121.4 µs
validate[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
Regression
CodSpeed Performance Gauge
-42%
9.9 ms17.2 ms

Improved

is_valid[FHIR/Fhir]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+12%
146.7 µs130.7 µs

Passed

iter_errors[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
+6%
14.9 µs14.1 µs
validate[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
+4%
12 µs11.5 µs
is_valid[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
+4%
10.5 µs10.1 µs
validate[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+3%
7.9 µs7.6 µs
validate[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+2%
4.2 µs4.1 µs
subresources_of[Fast]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.5 µs1.5 µs
subresources_of[CITM]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.8 µs1.8 µs
subresources_of[GeoJSON]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.8 µs1.8 µs
build[GeoJSON]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+1%
1.3 ms1.3 ms
is_valid[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+1%
6.4 µs6.3 µs
try_with_resource[Fast]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
+1%
22.9 µs22.7 µs
subresources_of[draft 4]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.2 µs3.2 µs
subresources_of[draft 6]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.3 µs3.2 µs
subresources_of[draft 7]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.5 µs3.5 µs
subresources_of[draft 2019-09]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.7 µs3.7 µs
subresources_of[Open API]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.8 µs3.8 µs
subresources_of[draft 2020-12]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.8 µs3.8 µs
subresources_of[Swagger]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
4.9 µs4.9 µs
validate[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
5.9 ms5.9 ms
try_new[draft 6]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
26.3 µs26.3 µs
try_new[draft 2019-09]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
26.3 µs26.3 µs
try_new[draft 2020-12]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
27.1 µs27.1 µs
try_new[draft 7]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
28.1 µs28.1 µs
try_with_resource[GeoJSON]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
63.4 µs63.4 µs
pointer[double]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
0%
5.9 µs5.9 µs
try_new[draft 4]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
25.4 µs25.4 µs
try_with_resource[Swagger]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
268.1 µs268.3 µs
pointer[long]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
0%
12.9 µs12.9 µs
build[Open API]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
7.4 ms7.5 ms
pointer[single]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
-1%
4.8 µs4.8 µs
try_with_resource[Open API]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
-1%
219.3 µs220.7 µs
build[FHIR]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
212 ms213.5 ms
build[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
931.3 µs938.7 µs
iter_errors[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
72.7 µs73.4 µs
build[Swagger]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
6.4 ms6.5 ms
validate[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
64.8 µs65.3 µs
resolve[small]
crates/jsonschema-referencing/benches/anchor.rs::benches::bench_anchor_lookup::Anchor Lookup
CodSpeed Performance Gauge
-1%
2.7 µs2.8 µs
try_with_resource[CITM]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
-1%
35.4 µs35.8 µs
build[Fast]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
176.3 µs178.6 µs
is_valid[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-2%
60.7 µs61.7 µs
build[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-2%
317.7 µs323 µs
build[CITM]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
421.7 µs431.5 µs
validate[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-7%
21.8 ms23.4 ms
validate[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-8%
20 ms21.6 ms
is_valid[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-8%
4.8 ms5.3 ms
is_valid[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-8%
19.7 ms21.5 ms
is_valid[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-9%
770 ns849.7 ns
is_valid[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-9%
20.3 ms22.5 ms

Commits

Click on a commit to change the comparison range
Base
master
5f2e617
-97.59%
perf: use type guards to avoid descending into nodes Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
b847dfd
2 months ago
by Stranger6667
© 2026 CodSpeed Technology
Home Terms Privacy Docs