Removed unneeded prefetch in IOFiber
#3492
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.
This was an artifact of our
-Xcheckinit
days. The net result here is reducing the memory footprint ofIOFiber
by two full pointer widths, which is actually not a small amount. Surprisingly though, the results are almost exactly a wash for reasons I don't understand... except forparTraverse
, which is mysteriously 20% faster now. I reproduced the performance delta across repeated runs and negative tests, so I think it's real, but I do find it fascinatingly bizarre.Even more interestingly, I would have expected the performance results here to be essentially the inverse of #3471, which saw a statistically-significant degradation from shifting from a megamorphic
invokevirtual
to agetfield
(at the cost of a slightly larger object map). The only explanation I have for why this PR has such minimal impact while that PR was so very noticeable (aside from experimental error) is that perhaps we're right up against an L1 page boundary on my test machine. If that's the case, rebasing #3471 on top of this PR and then re-running should produce a noticeable improvement.