heap_profile

tools/heap_profile allows to collect native memory profiles on Android. See Recording traces for more details about the data-source.

usage: heap_profile [-h] [-i INTERVAL] [-d DURATION] [--no-start] [-p PIDS]
                    [-n NAMES] [-c CONTINUOUS_DUMP] [--disable-selinux]
                    [--no-versions] [--no-running] [--no-startup]
                    [--shmem-size SHMEM_SIZE] [--block-client]
                    [--block-client-timeout BLOCK_CLIENT_TIMEOUT]
                    [--no-block-client] [--idle-allocations] [--dump-at-max]
                    [--disable-fork-teardown] [--simpleperf]
                    [--trace-to-text-binary TRACE_TO_TEXT_BINARY]
                    [--print-config] [-o DIRECTORY]

Options

OptionDescription
-n, --nameComma-separated list of process names to profile.
-p, --pidComma-separated list of PIDs to profile.
-i, --intervalSampling interval. Default 4096 (4KiB)
-o, --outputOutput directory.
-d, --durationDuration of profile (ms). Default 7 days.
--block-clientWhen 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
--no-block-clientWhen buffer is full, stop the profile early.
--block-client-timeoutIf --block-client is given, do not block any allocation for longer than this timeout (us).
-h, --helpShow this help message and exit
--no-startDo not start heapprofd.
-c, --continuous-dumpDump interval in ms. 0 to disable continuous dump.
--disable-selinuxDisable SELinux enforcement for duration of profile.
--no-versionsDo not get version information about APKs.
--no-runningDo not target already running processes. Requires Android 11.
--no-startupDo not target processes that start during the profile. Requires Android 11.
--shmem-sizeSize of buffer between client and heapprofd. Default 8MiB. Needs to be a power of two multiple of 4096, at least 8192.
--dump-at-maxDump the maximum memory usage rather than at the time of the dump.
--disable-fork-teardownDo not tear down client in forks. This can be useful for programs that use vfork. Android 11+ only.
--simpleperfGet simpleperf profile of heapprofd. This is only for heapprofd development.
--trace-to-text-binaryPath to local trace to text. For debugging.
--print-configPrint config instead of running. For debugging.