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

Replace all uses of the `heapsize` crate with `malloc_size_of`. #18938

Merged
merged 1 commit into from Oct 18, 2017

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
You can’t perform that action at this time.