| # HEAP_PROFILE(1) | |
| ## NAME | |
| heap_profile - record heap profile on Android device | |
| ## DESCRIPTION | |
| `tools/heap_profile` allows to collect native memory profiles on Android. | |
| See [Recording traces](/docs/data-sources/native-heap-profiler.md) 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] | |
| [--traceconv-binary TRACECONV_BINARY] | |
| [--print-config] [-o DIRECTORY] | |
| ``` | |
| ## OPTIONS | |
| `-n`, `--name` _NAMES_ | |
| : Comma-separated list of process names to profile. | |
| `-p`, `--pid` _PIDS_ | |
| : Comma-separated list of PIDs to profile. | |
| `-i`, `--interval` | |
| : Sampling interval. Default 4096 (4KiB) | |
| `-o`, `--output` _DIRECTORY_ | |
| : Output directory. | |
| `--all-heaps` | |
| : Collect allocations from all heaps registered by target. | |
| `--block-client` | |
| : 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 | |
| `--block-client-timeout` | |
| : If --block-client is given, do not block any allocation for longer than this timeout (us). | |
| `-c`, `--continuous-dump` | |
| : Dump interval in ms. 0 to disable continuous dump. | |
| `-d`, `--duration` | |
| : Duration of profile (ms). 0 to run until interrupted. Default: until interrupted by user. | |
| `--disable-fork-teardown` | |
| : Do not tear down client in forks. This can be useful for programs that use vfork. Android 11+ only. | |
| `--disable-selinux` | |
| : Disable SELinux enforcement for duration of profile. | |
| `--dump-at-max` | |
| : Dump the maximum memory usage rather than at the time of the dump. | |
| `-h`, `--help` | |
| : show this help message and exit | |
| `--heaps` _HEAPS_ | |
| : Comma-separated list of heaps to collect, e.g: malloc,art. Requires Android 12. | |
| `--idle-allocations` | |
| : Keep track of how many bytes were unused since the last dump, per callstack | |
| `--no-android-tree-symbolization` | |
| : Do not symbolize using currently lunched target in the Android tree. | |
| `--no-block-client` | |
| : When buffer is full, stop the profile early. | |
| `--no-running` | |
| : Do not target already running processes. Requires Android 11. | |
| `--no-start` | |
| : Do not start heapprofd. | |
| `--no-startup` | |
| : Do not target processes that start during the profile. Requires Android 11. | |
| `--no-versions` | |
| : Do not get version information about APKs. | |
| `--print-config` | |
| : Print config instead of running. For debugging. | |
| `--shmem-size` | |
| : Size of buffer between client and heapprofd. Default 8MiB. Needs to be a power of two multiple of 4096, at least 8192. | |
| `--simpleperf` | |
| : Get simpleperf profile of heapprofd. This is only for heapprofd development. | |
| `--traceconv-binary` | |
| : Path to local trace to text. For debugging. |