Index: build/android/chrome_profiler/chrome_controller.py |
diff --git a/build/android/chrome_profiler/chrome_controller.py b/build/android/chrome_profiler/chrome_controller.py |
index 6c422f331ca2e53219fb24576b78599c5ea2d300..745e5d7df66901011194918e56afa4e199c6f7b5 100644 |
--- a/build/android/chrome_profiler/chrome_controller.py |
+++ b/build/android/chrome_profiler/chrome_controller.py |
@@ -11,9 +11,11 @@ from chrome_profiler import controllers |
from pylib import pexpect |
+_HEAP_PROFILE_MMAP_PROPERTY = 'heapprof.mmap' |
class ChromeTracingController(controllers.BaseController): |
- def __init__(self, device, package_info, categories, ring_buffer): |
+ def __init__(self, device, package_info, |
+ categories, ring_buffer, trace_memory=False): |
controllers.BaseController.__init__(self) |
self._device = device |
self._package_info = package_info |
@@ -21,6 +23,7 @@ class ChromeTracingController(controllers.BaseController): |
self._ring_buffer = ring_buffer |
self._trace_file = None |
self._trace_interval = None |
+ self._trace_memory = trace_memory |
self._trace_start_re = \ |
re.compile(r'Logging performance trace to file') |
self._trace_finish_re = \ |
@@ -59,6 +62,12 @@ class ChromeTracingController(controllers.BaseController): |
self._package_info.package, 'GPU_PROFILER_START', |
'-e categories "%s"' % ','.join(self._categories), |
'-e continuous' if self._ring_buffer else '') |
+ |
+ if self._trace_memory: |
+ self._device.old_interface.EnableAdbRoot() |
+ self._device.old_interface.system_properties \ |
+ [_HEAP_PROFILE_MMAP_PROPERTY] = 1 |
+ |
# Chrome logs two different messages related to tracing: |
# |
# 1. "Logging performance trace to file" |
@@ -79,6 +88,9 @@ class ChromeTracingController(controllers.BaseController): |
'GPU_PROFILER_STOP') |
self._trace_file = self._device.old_interface.WaitForLogMatch( |
self._trace_finish_re, None, timeout=120).group(1) |
+ if self._trace_memory: |
+ self._device.old_interface.system_properties \ |
+ [_HEAP_PROFILE_MMAP_PROPERTY] = 0 |
def PullTrace(self): |
# Wait a bit for the browser to finish writing the trace file. |