# Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This is a generic rule-tree for classifying native heaps on Android. It is a # simple hierarchical python data structure (list of dictionaries). Some rules: # - Order matters: what is caught by a node is not caught by its siblings. # - Hierarchy matters: what is caught by a node is propagated to its children # (if any). Only one of its children, though, will get the data. # - Non leaf nodes have an extra implicit node called {node-name}-other: if # something is caught by a non leaf node, but none of its children, it is # appended to implicit {node-name}-other catch-all children. # # See memory_inspector/classification/native_heap_classifier.py for more docs. # TODO(primiano): This is just a quick sample. Enrich looking at DMP. [ { 'name': 'Blink', 'stacktrace': r'WTF::|WebCore::|WebKit::', 'children': [ { 'name': 'SharedBuffer', 'stacktrace': r'WebCore::SharedBuffer', }, { 'name': 'XMLHttpRequest', 'stacktrace': r'WebCore::XMLHttpRequest', }, { 'name': 'DocumentWriter', 'stacktrace': r'WebCore::DocumentWriter', }, { 'name': 'Node_Docs', 'stacktrace': r'WebCore::\w+::create', }, ], }, { 'name': 'Skia', 'stacktrace': r'sk\w+::', }, { 'name': 'V8', 'stacktrace': r'v8::', 'children': [ { 'name': 'heap-newspace', 'stacktrace': r'v8::internal::NewSpace', }, { 'name': 'heap-coderange', 'stacktrace': r'v8::internal::CodeRange', }, { 'name': 'heap-pagedspace', 'stacktrace': r'v8::internal::PagedSpace', }, ], }, ]