Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 1409255 - Replace all uses of the heapsize crate with malloc_size_of #18920

Closed
wants to merge 1 commit into from

Commits on Oct 18, 2017

  1. 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`.
    nnethercote committed Oct 18, 2017
    Configuration menu
    Copy the full SHA
    4917b40 View commit details
    Browse the repository at this point in the history