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

src: implement MemoryRetainer in Environment #27018

Closed
wants to merge 3 commits into from

Commits on Mar 31, 2019

  1. src: implement MemoryRetainer in Environment

    This allows us to track the essentially-global objects in
    Environment in the heap snapshot. Note that this patch only
    tracks the fields that can be tracked correctly. There are
    still several types of fields that cannot be tracked:
    
    - v8::Data including v8::Private, v8::ObjectTemplate etc.
    - Internal types that do not implement MemoryRetainer yet
    - STL containers with MemoryRetainer* inside
    - STL containers with numeric types inside that should not have their
      nodes elided e.g. numeric keys in maps.
    
    The `BaseObject`s are now no longer globals. They are tracked
    as arguments in CleanupHookCallbacks referenced by the Environment
    node. This model is closer to how their lifetime is managed
    internally.
    
    To track the per-environment strong persistent properties, this patch
    divides them into those that are also `v8::Value` and those that
    are just `v8::Data`. The values can be tracked by the current
    memory tracker while the data cannot.
    
    This patch also implements the `MemoryRetainer` interface in several
    internal classes so that they can be tracked in the heap snapshot.
    joyeecheung committed Mar 31, 2019
    Configuration menu
    Copy the full SHA
    76c6bdf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81203f6 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2019

  1. Configuration menu
    Copy the full SHA
    046109e View commit details
    Browse the repository at this point in the history