Closed popematt closed 1 year ago
Attention: 5 lines
in your changes are missing coverage. Please review.
Comparison is base (
e80edaa
) 83.15% compared to head (f942da5
) 83.13%.
Files | Patch % | Lines |
---|---|---|
...src/main/kotlin/com/amazon/ionschema/Violations.kt | 44.44% | 4 Missing and 1 partial :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Issue #, if available:
None.
Description of changes:
I changed the implementation of
ViolationChild
so that it's not unnecessarily creating clones ofIonValue
s. Also changed the implementation ofTypeNamed
so that it doesn't create a new struct and clone the entire type definition every time it validates a value.My informal performance testing shows a significant improvement. I created a representative schema:
And tested it using a set of values that were all valid for the type
abc
and another set that were all invalid. These results were measured by running warmups until the time was stable, using an "autorange" approach to determine the number of invocations in each sample, and then collecting and averaging the ops/s for 30 samples.Related PRs in ion-schema, ion-schema-tests, ion-schema-schemas:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.