Add builtin derive benchmarks #791
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.
tl;dr Using #[derive] for built in traits incurs significant overhead at scale
I've created a benchmark which has 5,000 structs with one i32 field. I then
#[derive(Copy, Clone, Default, Eq, PartialEq, Debug)]
for all the structs. This builds using the current nightly compiler (f2bbdd0a3 2020-11-04) in ~5 seconds. When I manually implement these traits, the code compiles in ~2.5 seconds.This issue is being discussed on Zulip.