Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: chrome/test/ui/ui_test.cc

Issue 402052: Prep for printing common memory stats from page_cycler_tests and memory_test:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: remove commented-out code from previous upload Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/ui/ui_test.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/ui/ui_test.cc
===================================================================
--- chrome/test/ui/ui_test.cc (revision 32457)
+++ chrome/test/ui/ui_test.cc (working copy)
@@ -1178,3 +1178,157 @@
db.Close();
file_util::EvictFileFromSystemCache(history);
}
+
+void UITest::PrintIOPerfInfo(const char* test_name, FilePath data_dir) {
+ int browser_process_pid = ChromeBrowserProcessId(data_dir);
+ ChromeProcessList chrome_processes(GetRunningChromeProcesses(data_dir));
+
+ ChromeProcessList::const_iterator it;
+ for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) {
+ base::ProcessHandle process_handle;
+ if (!base::OpenPrivilegedProcessHandle(*it, &process_handle)) {
+ NOTREACHED();
+ return;
+ }
+
+ scoped_ptr<base::ProcessMetrics> process_metrics(
+ base::ProcessMetrics::CreateProcessMetrics(process_handle));
+ IoCounters io_counters;
+ memset(&io_counters, 0, sizeof(io_counters));
+
+ if (process_metrics.get()->GetIOCounters(&io_counters)) {
+ // Print out IO performance. We assume that the values can be
+ // converted to size_t (they're reported as ULONGLONG, 64-bit numbers).
+ std::string chrome_name = (*it == browser_process_pid) ? "_b" : "_r";
+
+ PrintResult("read_op", chrome_name,
+ "r_op" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.ReadOperationCount), "",
+ false /* not important */);
+ PrintResult("write_op", chrome_name,
+ "w_op" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.WriteOperationCount), "",
+ false /* not important */);
+ PrintResult("other_op", chrome_name,
+ "o_op" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.OtherOperationCount), "",
+ false /* not important */);
+
+ size_t total = static_cast<size_t>(io_counters.ReadOperationCount +
+ io_counters.WriteOperationCount +
+ io_counters.OtherOperationCount);
+ PrintResult("total_op", chrome_name,
+ "IO_op" + chrome_name + test_name,
+ total, "", true /* important */);
+
+ PrintResult("read_byte", chrome_name,
+ "r_b" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.ReadTransferCount / 1024),
+ "kb", false /* not important */);
+ PrintResult("write_byte", chrome_name,
+ "w_b" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.WriteTransferCount / 1024),
+ "kb", false /* not important */);
+ PrintResult("other_byte", chrome_name,
+ "o_b" + chrome_name + test_name,
+ static_cast<size_t>(io_counters.OtherTransferCount / 1024),
+ "kb", false /* not important */);
+
+ total = static_cast<size_t>((io_counters.ReadTransferCount +
+ io_counters.WriteTransferCount +
+ io_counters.OtherTransferCount) / 1024);
+ PrintResult("total_byte", chrome_name,
+ "IO_b" + chrome_name + test_name,
+ total, "kb", true /* important */);
+ }
+
+ base::CloseProcessHandle(process_handle);
+ }
+}
+
+void UITest::PrintMemoryUsageInfo(const char* test_name, FilePath data_dir) {
+ int browser_process_pid = ChromeBrowserProcessId(data_dir);
+ ChromeProcessList chrome_processes(GetRunningChromeProcesses(data_dir));
+
+#if !defined(OS_MACOSX)
+ ChromeProcessList::const_iterator it;
+ for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) {
+ base::ProcessHandle process_handle;
+ if (!base::OpenPrivilegedProcessHandle(*it, &process_handle)) {
+ NOTREACHED();
+ return;
+ }
+
+ scoped_ptr<base::ProcessMetrics> process_metrics(
+ base::ProcessMetrics::CreateProcessMetrics(process_handle));
+
+ std::string chrome_name = (*it == browser_process_pid) ? "_b" : "_r";
+
+ std::string trace_name(test_name);
+#if defined(OS_WIN)
+ PrintResult("vm_peak", chrome_name,
+ "vm_pk" + chrome_name + trace_name,
+ process_metrics->GetPeakPagefileUsage(), "bytes",
+ true /* important */);
+ PrintResult("vm_final", chrome_name,
+ "vm_f" + chrome_name + trace_name,
+ process_metrics->GetPagefileUsage(), "bytes",
+ false /* not important */);
+ PrintResult("ws_peak", chrome_name,
+ "ws_pk" + chrome_name + trace_name,
+ process_metrics->GetPeakWorkingSetSize(), "bytes",
+ true /* important */);
+ PrintResult("ws_final", chrome_name,
+ "ws_f" + chrome_name + trace_name,
+ process_metrics->GetWorkingSetSize(), "bytes",
+ false /* not important */);
+#elif defined(OS_LINUX)
+ PrintResult("vm_size_final", chrome_name,
+ "vm_size_f" + chrome_name + trace_name,
+ process_metrics->GetPagefileUsage(), "bytes",
+ true /* important */);
+ PrintResult("vm_rss_final", chrome_name,
+ "vm_rss_f" + chrome_name + trace_name,
+ process_metrics->GetWorkingSetSize(), "bytes",
+ true /* important */);
+#else
+ NOTIMPLEMENTED();
+#endif
+ base::CloseProcessHandle(process_handle);
+ }
+
+#else // !defined(OS_MACOSX)
+
+ // There is no way to get memory info from one process on another process
+ // without privileges, this means the base methods for doing this can't be
+ // made to work. Instead we use a helper that invokes ps to collect the
+ // data so we have it for the unittest.
+
+ MacChromeProcessInfoList process_infos(
+ GetRunningMacProcessInfo(chrome_processes));
+ MacChromeProcessInfoList::const_iterator it;
+ for (it = process_infos.begin(); it != process_infos.end(); ++it) {
+ const MacChromeProcessInfo &process_info = *it;
+
+ std::string chrome_name =
+ (process_info.pid == browser_process_pid) ? "_b" : "_r";
+ std::string trace_name(test_name);
+
+ PrintResult("vm_size_final", chrome_name,
+ "vm_size_f" + chrome_name + trace_name,
+ static_cast<size_t>(process_info.vsz_in_kb) * 1024, "bytes",
+ true /* important */);
+ PrintResult("vm_rss_final", chrome_name,
+ "vm_rss_f" + chrome_name + trace_name,
+ static_cast<size_t>(process_info.rsz_in_kb) * 1024, "bytes",
+ true /* important */);
+ }
+
+#endif // !defined(OS_MACOSX)
+}
+
+void UITest::PrintSystemCommitCharge(const char* test_name, size_t charge) {
+ std::string trace_name(test_name);
+ PrintResult("commit_charge", "", "cc" + trace_name, charge, "kb",
+ true /* important */);
+}
« no previous file with comments | « chrome/test/ui/ui_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698