Improve strictNullChecks performance #44
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the existing,
KotlinValueInstantiator
handlesstrictNullChecks
, but this has the following problemsstrictNullChecks
flag for each argumentstrictNullChecks
flag is enabled, each argument needs to be checked forCollectionLike
typenullish
even if it isCollectionLike
typeTherefore, modified the
strictNullChecks
to be done byConverter
so that these checks are done only once at initialization.This change will result in a significant performance improvement when the
strictNullChecks
option is enabled and a minor performance improvement for all deserialization.Benchmark results
Benchmarks were added to kogera-benchmark and compared to 00c2415.
00c2415
This PR
The results show a marked performance improvement when the
strictNullChecks
option is enabled.Also, this benchmark is based on a single argument, and the improvement increases as the number of arguments increases.