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