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.
Checklist
purchases-android
and hybridsMotivation
I was scrolling through your code and saw
Which suggested that you care about performance of the parser. Since I wanted to improve my profiling skills here we are :)
Issue: #4006
Description
Improved performance of parsing receipt (which is mostly parsing of dates).
From profiler I saw that most of the time is spent in
ArraySlice.toDate()
.By removing
dateString = String
and using system Calendar I was able to sigificently speed up the process.As fallback I left previous
ISO8601DateFormatter.default.date
Example results on iPhone 8
Date
mach_absolute_time
Cycles
INST_ALL
L1D_TLB_MISS
I've also added some additional test cases based on example receipts I was able to find through internet.