OLD | NEW |
(Empty) | |
| 1 Policy files contains a classification policy for dmprof.py. |
| 2 |
| 3 Each line indicates a group to be classified and conditions for classifying |
| 4 in the following format. |
| 5 Format: <group-name> <region-type> <pattern> |
| 6 |
| 7 <group-name> is a name for the group to be classified. Same names can appear |
| 8 in the same policy file multiple times. <region-type> represents a type of |
| 9 the memory region. It's one of {malloc, mmap, default, optional}. <pattern> |
| 10 is a Python-style regular expression to match with calling stack frames. |
| 11 |
| 12 For each memory chunks allocated by malloc, its calling stack frame of malloc |
| 13 is compared with these classification policies whose <region-type> is 'malloc' |
| 14 from the top. If <pattern> of the policy matches the frame, the memory chunk |
| 15 is classified into <group-name>. The same way for 'mmap'. |
| 16 |
| 17 Policy lines whose <region-type>s are 'optional' and 'default' are used by |
| 18 dmprof.py internally. 'optional' policies can be disabled by removing or |
| 19 commenting-out. |
| 20 |
| 21 |
| 22 Guidelines to write a new policy. |
| 23 |
| 24 Better policies would classify memory on a single layer, or simple combination |
| 25 of layers. For example, |
| 26 - Large-level components (V8, WebKit, ...) |
| 27 - Mid-level components (Font, FileAPI, ...) |
| 28 - Low-level libraries (StringImpl, HashTable, ...) |
| 29 - Mid-level libraries (SharedBuf, XHR, ...) |
| 30 |
| 31 For example of combinations, |
| 32 - How about SharedBuf in Font API v.s. other APIs? |
| 33 - How about Strings in IndexedDB v.s. File APIs? |
| 34 |
| 35 |
| 36 Deprecated policies for references. |
| 37 |
| 38 total-vm optional optional |
| 39 anonymous-vm optional optional |
| 40 filemapped-vm optional optional |
| 41 other-vm optional optional |
| 42 vm-profiler optional optional |
| 43 vm-total optional optional |
| 44 mmap-v8-heap-new mmap .*v8::.*::ReserveInitialChunk.* |
| 45 mmap-v8-heap-coderange mmap .*v8::.*::CodeRange::Setup.* |
| 46 mmap-v8-heap-old-evacuate mmap .*v8::.*::OldSpace::.* v8::internal::Scav
engingVisitor::EvacuateObject.* |
| 47 mmap-v8-heap-old mmap .*v8::.*::OldSpace::.* |
| 48 mmap-v8-heap-largeobj mmap .*v8::.*::LargeObjectChunk::New.* |
| 49 mmap-v8-heap-other mmap .*VirtualMemory.* |
| 50 mmap-v8-heap-other mmap .*v8::internal::OS::Allocate.* |
| 51 mmap-v8-nonheap mmap .*v8::.* |
| 52 mmap-webkit mmap .*(WTF::|WebCore::|WebKit::).* |
| 53 mmap-sqlite mmap .*sqlite3MemMalloc.* |
| 54 mmap-pl-arena mmap .*PL_ArenaAllocate.* |
| 55 mmap-sk mmap .*sk_malloc_flags.* |
| 56 mmap-total-record-vm default default |
OLD | NEW |