Use shrink_to_fit on TrackProducer collections #9147
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.
Uses shrink_to_fit to reduce the memory used by the produced collections in TrackProducer, basically backported from 74X. This also adds shrink_to_fit to the edm::OwnVector interface, also backported from 74X.
Note that since this includes a change to the edm::OwnVector header a checkdeps will pull in 417 packages.
Even though each individual TrackProducer doesn't have comparatively large collections, because there are so many of them if you sum up by producer type it's actually one of the largest. This plot is 200 pileup before applying this pull request (but with some of the other PRs in the queue):
I've been doing a few tests and it doesn't seem to make a huge amount of difference. I didn't do the checkdeps, but I don't see why that would have made a difference. Anyway, the shrink_to_fit is only going to improve things - peak memory use is not a problem for TrackProducer.