Closed
Bug 1087834
Opened 5 years ago
Closed 5 years ago
Reduce heap churn involving |input_overflow_buf_|
Categories
(Core :: IPC, defect)
Core
IPC
Not set
Tracking
()
RESOLVED
FIXED
mozilla36
People
(Reporter: njn, Assigned: njn)
References
Details
Attachments
(1 file)
3.77 KB,
patch
|
billm
:
review+
|
Details | Diff | Splinter Review |
Prior to bug 811596, when a large IPC message was received the input_overflow_buf_ buffer would grow to fit the message. And it would never shrunk, so 99.9% of the time the large buffer would be mostly unused space. So in bug 811596 I added code to shrink the buffer after a message was dealt with. This reduced the size down to 8 KiB, often from 500+ KiB, which is a big deal on B2G. Alas, I just discovered that I did it in a sub-optimal way: because C++ strings don't provide a guaranteed way to shrink a string's capacity, I instead replaced the string's buffer with a new, small one. But my code does this *for every message*. And since most messages are small, that means that most of the time we replace the existing buffer with a new one that is exactly the same size. This causes many unnecessary allocations and lots of heap churn. Whoops.
![]() |
Assignee | |
Comment 1•5 years ago
|
||
This patch changes things so that the buffer only gets replaced if it is bigger than the standard (small) size. In some simple e10s-enabled browsing I found this avoids the reallocation in 99.7% of cases.
Attachment #8510013 -
Flags: review?(wmccloskey)
Attachment #8510013 -
Flags: review?(wmccloskey) → review+
![]() |
Assignee | |
Comment 2•5 years ago
|
||
Thank you for the fast review.
![]() |
Assignee | |
Comment 3•5 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/87123c85507b
Comment 4•5 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/87123c85507b
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
![]() |
Assignee | |
Updated•5 years ago
|
Depends on: cumulative-heap-profiling
You need to log in
before you can comment on or make changes to this bug.
Description
•