perf: make e2hs writer 44x faster for generating E2HS files from Era1 files #1754
+8
−16
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.
What was wrong?
We where deserializing the Era1 file every time for every block retrieved from the Era1 file. So we were deserializing the Era1 file 8192 times.
Before time: 8m27.011s
After my fix: 0m11.451s
^ these results came from generating E2HS file 1655
How was it fixed?
I removed
get_tuple_by_index()
as the function is just not good and encourages bad patterns. Instead of usingget_tuple_by_index
I decoded the Era1 file once, then parsed theblock_tuple
out when needed