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

Side by Side Diff: base/process/process_metrics_linux.cc

Issue 1272823003: Update SplitString calls to new form (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months 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 unified diff | Download patch
« no previous file with comments | « base/process/internal_linux.cc ('k') | base/test/launcher/test_launcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/process/process_metrics.h" 5 #include "base/process/process_metrics.h"
6 6
7 #include <dirent.h> 7 #include <dirent.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <sys/stat.h> 9 #include <sys/stat.h>
10 #include <sys/time.h> 10 #include <sys/time.h>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 return 0; 60 return 0;
61 } 61 }
62 62
63 StringPairs pairs; 63 StringPairs pairs;
64 SplitStringIntoKeyValuePairs(status, ':', '\n', &pairs); 64 SplitStringIntoKeyValuePairs(status, ':', '\n', &pairs);
65 TrimKeyValuePairs(&pairs); 65 TrimKeyValuePairs(&pairs);
66 for (size_t i = 0; i < pairs.size(); ++i) { 66 for (size_t i = 0; i < pairs.size(); ++i) {
67 const std::string& key = pairs[i].first; 67 const std::string& key = pairs[i].first;
68 const std::string& value_str = pairs[i].second; 68 const std::string& value_str = pairs[i].second;
69 if (key == field) { 69 if (key == field) {
70 std::vector<std::string> split_value_str; 70 std::vector<StringPiece> split_value_str = SplitStringPiece(
71 SplitString(value_str, ' ', &split_value_str); 71 value_str, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
72 if (split_value_str.size() != 2 || split_value_str[1] != "kB") { 72 if (split_value_str.size() != 2 || split_value_str[1] != "kB") {
73 NOTREACHED(); 73 NOTREACHED();
74 return 0; 74 return 0;
75 } 75 }
76 size_t value; 76 size_t value;
77 if (!StringToSizeT(split_value_str[0], &value)) { 77 if (!StringToSizeT(split_value_str[0], &value)) {
78 NOTREACHED(); 78 NOTREACHED();
79 return 0; 79 return 0;
80 } 80 }
81 return value; 81 return value;
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 std::string statm; 361 std::string statm;
362 { 362 {
363 FilePath statm_file = internal::GetProcPidDir(process_).Append("statm"); 363 FilePath statm_file = internal::GetProcPidDir(process_).Append("statm");
364 // Synchronously reading files in /proc does not hit the disk. 364 // Synchronously reading files in /proc does not hit the disk.
365 ThreadRestrictions::ScopedAllowIO allow_io; 365 ThreadRestrictions::ScopedAllowIO allow_io;
366 bool ret = ReadFileToString(statm_file, &statm); 366 bool ret = ReadFileToString(statm_file, &statm);
367 if (!ret || statm.length() == 0) 367 if (!ret || statm.length() == 0)
368 return false; 368 return false;
369 } 369 }
370 370
371 std::vector<std::string> statm_vec; 371 std::vector<StringPiece> statm_vec = SplitStringPiece(
372 SplitString(statm, ' ', &statm_vec); 372 statm, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
373 if (statm_vec.size() != 7) 373 if (statm_vec.size() != 7)
374 return false; // Not the format we expect. 374 return false; // Not the format we expect.
375 375
376 int statm_rss, statm_shared; 376 int statm_rss, statm_shared;
377 bool ret = true; 377 bool ret = true;
378 ret &= StringToInt(statm_vec[1], &statm_rss); 378 ret &= StringToInt(statm_vec[1], &statm_rss);
379 ret &= StringToInt(statm_vec[2], &statm_shared); 379 ret &= StringToInt(statm_vec[2], &statm_shared);
380 380
381 ws_usage->priv = (statm_rss - statm_shared) * page_size_kb; 381 ws_usage->priv = (statm_rss - statm_shared) * page_size_kb;
382 ws_usage->shared = statm_shared * page_size_kb; 382 ws_usage->shared = statm_shared * page_size_kb;
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 #if defined(OS_LINUX) 903 #if defined(OS_LINUX)
904 int ProcessMetrics::GetIdleWakeupsPerSecond() { 904 int ProcessMetrics::GetIdleWakeupsPerSecond() {
905 uint64 wake_ups; 905 uint64 wake_ups;
906 const char kWakeupStat[] = "se.statistics.nr_wakeups"; 906 const char kWakeupStat[] = "se.statistics.nr_wakeups";
907 return ReadProcSchedAndGetFieldAsUint64(process_, kWakeupStat, &wake_ups) ? 907 return ReadProcSchedAndGetFieldAsUint64(process_, kWakeupStat, &wake_ups) ?
908 CalculateIdleWakeupsPerSecond(wake_ups) : 0; 908 CalculateIdleWakeupsPerSecond(wake_ups) : 0;
909 } 909 }
910 #endif // defined(OS_LINUX) 910 #endif // defined(OS_LINUX)
911 911
912 } // namespace base 912 } // namespace base
OLDNEW
« no previous file with comments | « base/process/internal_linux.cc ('k') | base/test/launcher/test_launcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698