-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Reconfigure some of the manual inlining #17819
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love the overall direction!
As we discussed, let me double check the compilation time in release mode.
ba3d5f3
to
8b6df7c
Compare
I reverted to your feature flag most of the inlines that wasn't necessary (didn't contribute much), need to re-profile now, perf results could've changed a bit. |
Re-profiled, this achieves 6-7% improvement for 5.5% increase in |
8b6df7c
to
453d350
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mostly good to me! Please address the comments from both @georgemitenkov and me
453d350
to
cadb963
Compare
Ok, so I addresses all comments. The perf results are 2.5-3% improvement:
Enabling Compilation time difference is only around 5%, might be just noise. The difference from the previous results is because I disabled inlining for the |
cadb963
to
a514c7b
Compare
a514c7b
to
e15edfe
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|
No PR:
Time: 211.330649ms
No PR + force-inline:
Time: 193.759057ms
With this PR (first two commits):
With this PR (first two commits) + fully enabled remaining force-inline:
With this PR (all commits):
Time: 195.773863ms
With this PR (all commits) + force_inline:
Time: 194.416079ms
Numbers in the square brackets are number of ASM instructions. (It's actually ASM instructions + debug symbols, but irrelevant here).
UPD.
cargo build --bin aptos
compilation times:(so I guess ASM lines IS a good proxy for compilation time).
So in the end, I achieve 80-90% of the original performance improvement for 10% of the compilation time.