Chromium Code Reviews| Index: build/android/pylib/android_commands.py |
| diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py |
| index 1741619276ce56042a9a3df6f3b004fed1ebe3ad..d81f20c8520022cd742ca41707f8c5ea01a25b47 100644 |
| --- a/build/android/pylib/android_commands.py |
| +++ b/build/android/pylib/android_commands.py |
| @@ -21,6 +21,9 @@ import time |
| import cmd_helper |
| import constants |
| + |
| +from utils import host_path_finder |
| + |
| try: |
| from pylib import pexpect |
| except: |
| @@ -1409,6 +1412,19 @@ class AndroidCommands(object): |
| logging.warning('Could not find disk IO stats.') |
| return None |
| + def _PurgeUnpinnedAshmem(self): |
|
bulach
2013/11/05 16:25:14
probably best to make this public and let callers
Philippe
2013/11/05 16:37:42
Yeah, good idea. I don't think many clients will n
|
| + """Purges the unpinned ashmem memory for the whole system. |
| + |
| + This can be used to make memory measurements more stable in particular. |
| + """ |
| + host_path = host_path_finder.GetMostRecentHostPath('purge_ashmem') |
| + if host_path: |
| + device_path = os.path.join(constants.TEST_EXECUTABLE_DIR, 'purge_ashmem') |
| + self.PushIfNeeded(host_path, device_path) |
| + if self.RunShellCommand(device_path, log_result=True): |
| + return |
| + logging.error('Could not purge ashmem. Measurement might be unstable.') |
| + |
| def GetMemoryUsageForPid(self, pid): |
| """Returns the memory usage for given pid. |
| @@ -1425,6 +1441,7 @@ class AndroidCommands(object): |
| """ |
| usage_dict = collections.defaultdict(int) |
| smaps = collections.defaultdict(dict) |
| + self._PurgeUnpinnedAshmem() |
| current_smap = '' |
| for line in self.GetProtectedFileContents('/proc/%s/smaps' % pid, |
| log_result=False): |