android: Track and log total time spent symbolizing in tests.

Bug: 774267
Change-Id: If8e4620c781f38f0b3019e201f2e48146047ae06
Reviewed-on: https://chromium-review.googlesource.com/835787
Reviewed-by: Zhiling Huang <[email protected]>
Reviewed-by: John Budorick <[email protected]>
Commit-Queue: Benjamin Pastene <[email protected]>
Cr-Commit-Position: refs/heads/master@{#526820}
diff --git a/build/android/pylib/symbols/stack_symbolizer.py b/build/android/pylib/symbols/stack_symbolizer.py
index c1c9afb..05e40657 100644
--- a/build/android/pylib/symbols/stack_symbolizer.py
+++ b/build/android/pylib/symbols/stack_symbolizer.py
@@ -7,6 +7,7 @@
 import re
 import shutil
 import tempfile
+import time
 import zipfile
 
 from devil.utils import cmd_helper
@@ -38,6 +39,7 @@
     self._libs_dir = None
     self._apk_libs = []
     self._has_unzipped = False
+    self._time_spent_symbolizing = 0
 
 
   def __del__(self):
@@ -52,6 +54,9 @@
     if self._libs_dir:
       shutil.rmtree(self._libs_dir)
       self._libs_dir = None
+    if self._time_spent_symbolizing > 0:
+      logging.info(
+          'Total time spent symbolizing: %.2fs', self._time_spent_symbolizing)
 
 
   def UnzipAPKIfNecessary(self):
@@ -97,7 +102,11 @@
     with tempfile.NamedTemporaryFile() as f:
       f.write('\n'.join(data_to_symbolize))
       f.flush()
-      _, output = cmd_helper.GetCmdStatusAndOutput(cmd + [f.name], env=env)
+      start = time.time()
+      try:
+        _, output = cmd_helper.GetCmdStatusAndOutput(cmd + [f.name], env=env)
+      finally:
+        self._time_spent_symbolizing += time.time() - start
     for line in output.splitlines():
       if not include_stack and 'Stack Data:' in line:
         break