0

Update the memory profiling doc with recent changes

We removed the pseudo stack mode. Update instructions about
arm64 and x86-64 profiling. Also specify not to use component build
for profiling.

BUG= 1199271

Change-Id: I8b1cce693d38c12f92dc9526fca1893bb276fd9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2980940
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: ssid <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#895428}
This commit is contained in:
ssid
2021-06-24 02:13:19 +00:00
committed by Chromium LUCI CQ
parent e06b1fa908
commit c791b8b07c

@@ -30,19 +30,24 @@ be enabled via chrome://memory-internals or about://flags.
* If you run into the error "Nothing to symbolize" then backtraces are not * If you run into the error "Nothing to symbolize" then backtraces are not
working properly. There are two mechanisms that Chrome attempts to use: working properly. There are two mechanisms that Chrome attempts to use:
frame pointers if they're present, and backtrace lib. The former can be frame pointers if they're present, and backtrace lib. The former can be
forced on with enable_frame_pointers gn arg. This should work on all architectures except for forced on with enable_frame_pointers gn arg. This should work on all architectures except for
arm 32.The latter depends on unwind tables. arm 32. The latter depends on unwind tables.
5. Load the (now symbolized) trace in chrome://tracing. 5. Load the (now symbolized) trace in chrome://tracing.
## How to obtain a heap dump (M66+, Android) ## How to obtain a heap dump (M66+, Android)
To obtain native heap dumps, you will need a custom build of Chrome with the GN On arm64 and x86-64, you can build chrome normally and follow steps above to
arguments `enable_profiling = true`, `arm_use_thumb = false` and obtain heap dumps.
`symbol_level=1`. All other steps are the same.
Alternatively, if you want to use an Official build of Chrome, navigate to To obtain native heap dumps on arm32, you will need a custom build of Chrome
chrome://flags and set `memlog-stack-mode` to `pseudo`. This will provide with the GN arguments `enable_profiling = true`, `arm_use_thumb = false`,
less-detailed stacks. The stacks also don't require symbolization. `is_component_build = false` and `symbol_level=1`. All other steps are the same.
Alternatively, if you want to use an official build of Chrome, use
`is_official_build = true` for arm32. If you want to use a released build,
profiling only works on Dev and Canary on arm, and all channels on x86-64. In
this case, you also need to fetch symbols manually and pass to the
symbolize_trace script above.
## How to obtain a heap dump (M65 and older) ## How to obtain a heap dump (M65 and older)