diff options
author | sgk@chromium.org <sgk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-05 22:31:12 +0000 |
---|---|---|
committer | sgk@chromium.org <sgk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-05 22:31:12 +0000 |
commit | b429982e9e25eafd853036f210c299a0ea56585a (patch) | |
tree | 24a3fd58ffc47e7db870d08723ce0244aebe15c0 /chrome/test/memory_test | |
parent | 157d547807a2b9d0e42f17636ffc39336a9a62f6 (diff) | |
download | chromium_src-b429982e9e25eafd853036f210c299a0ea56585a.zip chromium_src-b429982e9e25eafd853036f210c299a0ea56585a.tar.gz chromium_src-b429982e9e25eafd853036f210c299a0ea56585a.tar.bz2 |
Get rid of GetMemoryInfo() in favor of using base::ProcessMetrics.
Use a test-specific subclass to isolate the stopgap use of 'ps'
to collect memory stats on Mac.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/342070
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31144 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/memory_test')
-rw-r--r-- | chrome/test/memory_test/memory_test.cc | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/chrome/test/memory_test/memory_test.cc b/chrome/test/memory_test/memory_test.cc index aba0a48..3c55d9a 100644 --- a/chrome/test/memory_test/memory_test.cc +++ b/chrome/test/memory_test/memory_test.cc @@ -245,16 +245,23 @@ class MemoryTest : public UITest { ChromeProcessList::const_iterator it; for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) { - scoped_ptr<base::ProcessMetrics> process_metrics; IoCounters io_counters; base::ProcessHandle process_handle; if (!base::OpenPrivilegedProcessHandle(*it, &process_handle)) { NOTREACHED(); } + + // TODO(sgk): if/when base::ProcessMetrics can return real memory + // stats on mac, convert to: + // + // scoped_ptr<base::ProcessMetrics> process_metrics; + // process_metrics.reset( + // base::ProcessMetrics::CreateProcessMetrics(process_handle)); + scoped_ptr<ChromeTestProcessMetrics> process_metrics; process_metrics.reset( - base::ProcessMetrics::CreateProcessMetrics(process_handle)); - bzero(&io_counters, sizeof(io_counters)); + ChromeTestProcessMetrics::CreateProcessMetrics(process_handle)); + bzero(&io_counters, sizeof(io_counters)); if (process_metrics.get()->GetIOCounters(&io_counters)) { std::string chrome_name = (*it == browser_process_pid) ? "_b" : "_r"; @@ -297,23 +304,32 @@ class MemoryTest : public UITest { size_t browser_working_set_size = 0; size_t virtual_size = 0; size_t working_set_size = 0; - size_t num_chrome_processes = 0; ChromeProcessList::const_iterator it; for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) { - size_t peak_virtual_size; - size_t current_virtual_size; - size_t peak_working_set_size; - size_t current_working_set_size; - if (GetMemoryInfo(*it, &peak_virtual_size, ¤t_virtual_size, - &peak_working_set_size, ¤t_working_set_size)) { - if (*it == browser_process_pid) { - browser_virtual_size = current_virtual_size; - browser_working_set_size = current_working_set_size; - } - virtual_size += current_virtual_size; - working_set_size += current_working_set_size; - num_chrome_processes++; + base::ProcessHandle process_handle; + if (!base::OpenPrivilegedProcessHandle(*it, &process_handle)) { + NOTREACHED(); + } + + // TODO(sgk): if/when base::ProcessMetrics can return real memory + // stats on mac, convert to: + // + // scoped_ptr<base::ProcessMetrics> process_metrics; + // process_metrics.reset( + // base::ProcessMetrics::CreateProcessMetrics(process_handle)); + scoped_ptr<ChromeTestProcessMetrics> process_metrics; + process_metrics.reset( + ChromeTestProcessMetrics::CreateProcessMetrics(process_handle)); + + size_t current_virtual_size = process_metrics->GetPagefileUsage(); + size_t current_working_set_size = process_metrics->GetWorkingSetSize(); + + if (*it == browser_process_pid) { + browser_virtual_size = current_virtual_size; + browser_working_set_size = current_working_set_size; } + virtual_size += current_virtual_size; + working_set_size += current_working_set_size; } std::string trace_name(test_name); @@ -330,7 +346,7 @@ class MemoryTest : public UITest { working_set_size / 1024, "kb", true /* important */); PrintResult("processes", "", trace_name + "_proc", - num_chrome_processes, "", + chrome_processes.size(), "", false /* not important */); } |