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