Merged
Conversation
Owner
|
Yeah annoying. |
Contributor
Author
@boyter Finally, I found what caused this. Even if the functions are inlined, their arguments are evaluated, so that we need to pay time to convert arguments to interface P.S. Even though converting arguments to any is slow, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The compiler is still not smart, branch-less code in
CountStatscasused a performance regression. I'll revert this part.Other parts won't impact the speed.
Before:

Fixes:

After the revert the performance issue is fixed and we even become a little bit faster.
The compiler reports that these functions are inlined (I also detected the binary file, printXXX functions actually inlined and they were not in the symbol table), and theoretically there should be no performance difference. This is so wierd, so I left some comments on it.