remove reallocs and overallocs for s.lset in bucket.go#1718
Merged
bwplotka merged 1 commit intothanos-io:masterfrom Nov 5, 2019
Merged
remove reallocs and overallocs for s.lset in bucket.go#1718bwplotka merged 1 commit intothanos-io:masterfrom
bwplotka merged 1 commit intothanos-io:masterfrom
Conversation
- append to s.lset caused reallocs and overallocs - this is now fixed by properly setting capacity on s.lset - pprof shows "-316.22MB, 5.00% of 6322.82MB total" for sample data set and query I used Signed-off-by: Philip Panyukov <ppanyukov@googlemail.com>
ac35ad8 to
4805283
Compare
bwplotka
approved these changes
Nov 5, 2019
Member
bwplotka
left a comment
There was a problem hiding this comment.
This is intense! =D
I wish we had some nice benchmark suite.. on my todo list. (:
I think we copy those labels not efficiently more than just here.. Thanks! small steps (:
Member
|
LGTM, thanks! |
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.
Changes
Verification
realistic-k8s-1w-smallprofilecount({__name__=~".+"}) by (__name__)BucketStore.Seriesto dump heap profile at the start and end of the function call.PNG attached
Heap profiles attached
heap-series-1-after-base.pb.gz
heap-series-1-after-change.pb.gz
Edit
For what it's worth, here is my
HeapDumpfunc I used, in case anyone wants to instrument anything. Might save you looking for pprof docs :)