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 upReplace all uses of the `heapsize` crate with `malloc_size_of`. #18938
Conversation
highfive
commented
Oct 18, 2017
|
Heads up! This PR modifies the following files:
|
highfive
commented
Oct 18, 2017
|
r? @SimonSapin This fixes all the issues identified in #18920:
|
|
Looks great, thanks you! @bors-servo r+ Reviewed 269 of 269 files at r1. Comments from Reviewable |
|
|
|
@bors-servo r- |
|
|
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`.
|
@bors-servo r+ BTW @nnethercote, github doesn’t notify when an amended commit is pushed to a PR, I only saw your update by change. You may want to comment after pushing, to let the reviewer know. Reviewed 1 of 1 files at r2. Comments from Reviewable |
|
|
|
@bors-servo p=1 (I have another PR on top of this.) |
Replace all uses of the `heapsize` crate with `malloc_size_of`. Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1409255 <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because testing is on the Gecko side. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18938) <!-- Reviewable:end -->
|
|
nnethercote commentedOct 18, 2017
•
edited by SimonSapin
Servo currently uses
heapsize, but Stylo/Gecko usemalloc_size_of.malloc_size_ofis better -- it handles various cases thatheapsizedoes not-- so this patch changes Servo to use
malloc_size_of.This patch makes the following changes to the
malloc_size_ofcrate.Adds
MallocSizeOftrait implementations for numerous types, some built-in(e.g.
VecDeque), some external and Servo-only (e.g.string_cache).Makes
enclosing_size_of_opoptional, because vanilla jemalloc doesn'tsupport that operation.
For
HashSet/HashMap, falls back to a computed estimate whenenclosing_size_of_opisn't available.Adds an extern "C"
malloc_size_offunction that does the actual heapmeasurement; this is based on the same functions from the
heapsizecrate.This patch makes the following changes elsewhere.
Converts all the uses of
heapsizeto instead usemalloc_size_of.Disables the "heapsize"/"heap_size" feature for the external crates that
provide it.
Removes the
HeapSizeOfimplementation fromhashglobe.Adds
ignoreannotations to a fewRc/Arc, becausemalloc_size_ofdoesn't derive those types, unlike
heapsize../mach build -ddoes not report any errors./mach test-tidydoes not report any errorsThis change is