Commit b615dbfc authored by pliard@chromium.org's avatar pliard@chromium.org

Measure private dirty memory on OS that have /proc (e.g. Linux).

Note that private dirty is already measured on Android.

BUG=347919

Review URL: https://codereview.chromium.org/190743002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255913 0039d316-1c4b-4281-b951-d872f2087c98
parent c669471b
......@@ -59,8 +59,15 @@ class ProcSupportingPlatformBackend(platform_backend.PlatformBackend):
wss = int(stats[23]) * resource.getpagesize()
wss_peak = (self._ConvertKbToByte(status['VmHWM'])
if 'VmHWM' in status else wss)
private_dirty_bytes = 0
for line in self._GetProcFileForPid(pid, 'smaps').splitlines():
if line.startswith('Private_Dirty:'):
private_dirty_bytes += self._ConvertKbToByte(line.split(':')[1].strip())
return {'VM': vm,
'VMPeak': vm_peak,
'PrivateDirty': private_dirty_bytes,
'WorkingSetSize': wss,
'WorkingSetSizePeak': wss_peak}
......
......@@ -39,8 +39,12 @@ class ProcSupportingPlatformBackendTest(unittest.TestCase):
backend.SetMockFile(
'/proc/1/status',
open(os.path.join(util.GetUnittestDataDir(), 'status')).read())
backend.SetMockFile(
'/proc/1/smaps',
open(os.path.join(util.GetUnittestDataDir(), 'smaps')).read())
result = backend.GetMemoryStats(1)
self.assertEquals(result, {'VM': 1025978368,
self.assertEquals(result, {'PrivateDirty': 5324800,
'VM': 1025978368,
'VMPeak': 1050099712,
'WorkingSetSize': 84000768,
'WorkingSetSizePeak': 144547840})
......@@ -57,8 +61,12 @@ class ProcSupportingPlatformBackendTest(unittest.TestCase):
backend.SetMockFile(
'/proc/1/status',
open(os.path.join(util.GetUnittestDataDir(), 'status_nohwm')).read())
backend.SetMockFile(
'/proc/1/smaps',
open(os.path.join(util.GetUnittestDataDir(), 'smaps')).read())
result = backend.GetMemoryStats(1)
self.assertEquals(result, {'VM': 1025978368,
self.assertEquals(result, {'PrivateDirty': 5324800,
'VM': 1025978368,
'VMPeak': 1025978368,
'WorkingSetSize': 84000768,
'WorkingSetSizePeak': 84000768})
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment