Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAllow smallvec! with non-Copy items #107
Merged
Conversation
When count of items is smaller or equal than the target inline size, macro will use `SmallVec::push`, but when it's large enough, it passes data on to `vec!` macro for in-place heap allocation and then uses `SmallVec::from_vec`. This trick gives ~3.5x performance increase on `bench_macro_from_list` compared to `SmallVec::with_capacity`. Fixes #98.
|
@bors-servo r+ Thanks! |
|
|
bors-servo
added a commit
that referenced
this pull request
Aug 4, 2018
Allow smallvec! with non-Copy items When count of items is smaller or equal than the target inline size, macro will use `SmallVec::push`, but when it's large enough, it passes data on to `vec!` macro for in-place heap allocation and then uses `SmallVec::from_vec`. This trick gives ~3.5x performance increase on `bench_macro_from_list` compared to `SmallVec::with_capacity`. Fixes #98. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/107) <!-- Reviewable:end -->
|
|
|
@bors-servo retry |
bors-servo
added a commit
that referenced
this pull request
Aug 4, 2018
Allow smallvec! with non-Copy items When count of items is smaller or equal than the target inline size, macro will use `SmallVec::push`, but when it's large enough, it passes data on to `vec!` macro for in-place heap allocation and then uses `SmallVec::from_vec`. This trick gives ~3.5x performance increase on `bench_macro_from_list` compared to `SmallVec::with_capacity`. Fixes #98. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/107) <!-- Reviewable:end -->
|
|
|
@bors-servo retry |
bors-servo
added a commit
that referenced
this pull request
Aug 4, 2018
Allow smallvec! with non-Copy items When count of items is smaller or equal than the target inline size, macro will use `SmallVec::push`, but when it's large enough, it passes data on to `vec!` macro for in-place heap allocation and then uses `SmallVec::from_vec`. This trick gives ~3.5x performance increase on `bench_macro_from_list` compared to `SmallVec::with_capacity`. Fixes #98. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/107) <!-- Reviewable:end -->
|
|
mbrubeck
added a commit
to mbrubeck/rust-smallvec
that referenced
this pull request
Aug 6, 2018
Merged
bors-servo
added a commit
that referenced
this pull request
Aug 6, 2018
Version 0.6.4 Change log: * Extend the `smallvec!` macro to work with non-`Copy` items (#107) * Improve the `Debug` formatting implementation (#109) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/110) <!-- Reviewable:end -->
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.
RReverser commentedJul 27, 2018
•
edited by larsbergstrom
When count of items is smaller or equal than the target inline size, macro will use
SmallVec::push, but when it's large enough, it passes data on tovec!macro for in-place heap allocation and then usesSmallVec::from_vec.This trick gives ~3.5x performance increase on
bench_macro_from_listcompared toSmallVec::with_capacity.Fixes #98.
This change is