xref: /aosp_15_r20/external/perfetto/docs/reference/heap_profile-cli.md (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker# HEAP_PROFILE(1)
2*6dbdd20aSAndroid Build Coastguard Worker
3*6dbdd20aSAndroid Build Coastguard Worker## NAME
4*6dbdd20aSAndroid Build Coastguard Worker
5*6dbdd20aSAndroid Build Coastguard Workerheap_profile - record heap profile on Android device
6*6dbdd20aSAndroid Build Coastguard Worker
7*6dbdd20aSAndroid Build Coastguard Worker## DESCRIPTION
8*6dbdd20aSAndroid Build Coastguard Worker
9*6dbdd20aSAndroid Build Coastguard Worker`tools/heap_profile` allows to collect native memory profiles on Android.
10*6dbdd20aSAndroid Build Coastguard WorkerSee [Recording traces](/docs/data-sources/native-heap-profiler.md) for more
11*6dbdd20aSAndroid Build Coastguard Workerdetails about the data-source.
12*6dbdd20aSAndroid Build Coastguard Worker
13*6dbdd20aSAndroid Build Coastguard Worker```
14*6dbdd20aSAndroid Build Coastguard Workerusage: heap_profile [-h] [-i INTERVAL] [-d DURATION] [--no-start] [-p PIDS]
15*6dbdd20aSAndroid Build Coastguard Worker                    [-n NAMES] [-c CONTINUOUS_DUMP] [--disable-selinux]
16*6dbdd20aSAndroid Build Coastguard Worker                    [--no-versions] [--no-running] [--no-startup]
17*6dbdd20aSAndroid Build Coastguard Worker                    [--shmem-size SHMEM_SIZE] [--block-client]
18*6dbdd20aSAndroid Build Coastguard Worker                    [--block-client-timeout BLOCK_CLIENT_TIMEOUT]
19*6dbdd20aSAndroid Build Coastguard Worker                    [--no-block-client] [--idle-allocations] [--dump-at-max]
20*6dbdd20aSAndroid Build Coastguard Worker                    [--disable-fork-teardown] [--simpleperf]
21*6dbdd20aSAndroid Build Coastguard Worker                    [--traceconv-binary TRACECONV_BINARY]
22*6dbdd20aSAndroid Build Coastguard Worker                    [--print-config] [-o DIRECTORY]
23*6dbdd20aSAndroid Build Coastguard Worker```
24*6dbdd20aSAndroid Build Coastguard Worker
25*6dbdd20aSAndroid Build Coastguard Worker## OPTIONS
26*6dbdd20aSAndroid Build Coastguard Worker`-n`, `--name` _NAMES_
27*6dbdd20aSAndroid Build Coastguard Worker:    Comma-separated list of process names to profile.
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard Worker`-p`, `--pid` _PIDS_
30*6dbdd20aSAndroid Build Coastguard Worker:    Comma-separated list of PIDs to profile.
31*6dbdd20aSAndroid Build Coastguard Worker
32*6dbdd20aSAndroid Build Coastguard Worker`-i`, `--interval`
33*6dbdd20aSAndroid Build Coastguard Worker:    Sampling interval. Default 4096 (4KiB)
34*6dbdd20aSAndroid Build Coastguard Worker
35*6dbdd20aSAndroid Build Coastguard Worker`-o`, `--output` _DIRECTORY_
36*6dbdd20aSAndroid Build Coastguard Worker:    Output directory.
37*6dbdd20aSAndroid Build Coastguard Worker
38*6dbdd20aSAndroid Build Coastguard Worker`--all-heaps`
39*6dbdd20aSAndroid Build Coastguard Worker:    Collect allocations from all heaps registered by target.
40*6dbdd20aSAndroid Build Coastguard Worker
41*6dbdd20aSAndroid Build Coastguard Worker`--block-client`
42*6dbdd20aSAndroid Build Coastguard Worker:    When buffer is full, block the client to wait for buffer space. Use with caution as this can significantly slow down the client. This is the default
43*6dbdd20aSAndroid Build Coastguard Worker
44*6dbdd20aSAndroid Build Coastguard Worker`--block-client-timeout`
45*6dbdd20aSAndroid Build Coastguard Worker:    If --block-client is given, do not block any allocation for longer than this timeout (us).
46*6dbdd20aSAndroid Build Coastguard Worker
47*6dbdd20aSAndroid Build Coastguard Worker`-c`, `--continuous-dump`
48*6dbdd20aSAndroid Build Coastguard Worker:    Dump interval in ms. 0 to disable continuous dump.
49*6dbdd20aSAndroid Build Coastguard Worker
50*6dbdd20aSAndroid Build Coastguard Worker`-d`, `--duration`
51*6dbdd20aSAndroid Build Coastguard Worker:    Duration of profile (ms). 0 to run until interrupted. Default: until interrupted by user.
52*6dbdd20aSAndroid Build Coastguard Worker
53*6dbdd20aSAndroid Build Coastguard Worker`--disable-fork-teardown`
54*6dbdd20aSAndroid Build Coastguard Worker:    Do not tear down client in forks. This can be useful for programs that use vfork. Android 11+ only.
55*6dbdd20aSAndroid Build Coastguard Worker
56*6dbdd20aSAndroid Build Coastguard Worker`--disable-selinux`
57*6dbdd20aSAndroid Build Coastguard Worker:    Disable SELinux enforcement for duration of profile.
58*6dbdd20aSAndroid Build Coastguard Worker
59*6dbdd20aSAndroid Build Coastguard Worker`--dump-at-max`
60*6dbdd20aSAndroid Build Coastguard Worker:    Dump the maximum memory usage rather than at the time of the dump.
61*6dbdd20aSAndroid Build Coastguard Worker
62*6dbdd20aSAndroid Build Coastguard Worker`-h`, `--help`
63*6dbdd20aSAndroid Build Coastguard Worker:    show this help message and exit
64*6dbdd20aSAndroid Build Coastguard Worker
65*6dbdd20aSAndroid Build Coastguard Worker`--heaps` _HEAPS_
66*6dbdd20aSAndroid Build Coastguard Worker:    Comma-separated list of heaps to collect, e.g: malloc,art. Requires Android 12.
67*6dbdd20aSAndroid Build Coastguard Worker
68*6dbdd20aSAndroid Build Coastguard Worker`--idle-allocations`
69*6dbdd20aSAndroid Build Coastguard Worker:    Keep track of how many bytes were unused since the last dump, per callstack
70*6dbdd20aSAndroid Build Coastguard Worker
71*6dbdd20aSAndroid Build Coastguard Worker`--no-android-tree-symbolization`
72*6dbdd20aSAndroid Build Coastguard Worker:    Do not symbolize using currently lunched target in the Android tree.
73*6dbdd20aSAndroid Build Coastguard Worker
74*6dbdd20aSAndroid Build Coastguard Worker`--no-block-client`
75*6dbdd20aSAndroid Build Coastguard Worker:    When buffer is full, stop the profile early.
76*6dbdd20aSAndroid Build Coastguard Worker
77*6dbdd20aSAndroid Build Coastguard Worker`--no-running`
78*6dbdd20aSAndroid Build Coastguard Worker:    Do not target already running processes. Requires Android 11.
79*6dbdd20aSAndroid Build Coastguard Worker
80*6dbdd20aSAndroid Build Coastguard Worker`--no-start`
81*6dbdd20aSAndroid Build Coastguard Worker:    Do not start heapprofd.
82*6dbdd20aSAndroid Build Coastguard Worker
83*6dbdd20aSAndroid Build Coastguard Worker`--no-startup`
84*6dbdd20aSAndroid Build Coastguard Worker:    Do not target processes that start during the profile. Requires Android 11.
85*6dbdd20aSAndroid Build Coastguard Worker
86*6dbdd20aSAndroid Build Coastguard Worker`--no-versions`
87*6dbdd20aSAndroid Build Coastguard Worker:    Do not get version information about APKs.
88*6dbdd20aSAndroid Build Coastguard Worker
89*6dbdd20aSAndroid Build Coastguard Worker`--print-config`
90*6dbdd20aSAndroid Build Coastguard Worker:    Print config instead of running. For debugging.
91*6dbdd20aSAndroid Build Coastguard Worker
92*6dbdd20aSAndroid Build Coastguard Worker`--shmem-size`
93*6dbdd20aSAndroid Build Coastguard Worker:    Size of buffer between client and heapprofd. Default 8MiB. Needs to be a power of two multiple of 4096, at least 8192.
94*6dbdd20aSAndroid Build Coastguard Worker
95*6dbdd20aSAndroid Build Coastguard Worker`--simpleperf`
96*6dbdd20aSAndroid Build Coastguard Worker:    Get simpleperf profile of heapprofd. This is only for heapprofd development.
97*6dbdd20aSAndroid Build Coastguard Worker
98*6dbdd20aSAndroid Build Coastguard Worker`--traceconv-binary`
99*6dbdd20aSAndroid Build Coastguard Worker:    Path to local trace to text. For debugging.
100