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

Unified Diff: tools/android/device_stats_monitor/device_stats_monitor.cc

Issue 26402002: [Android] Some clean up in pylib. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove shebang lines Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/android/android_tools.gyp ('k') | tools/android/device_stats_monitor/device_stats_monitor.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/device_stats_monitor/device_stats_monitor.cc
diff --git a/tools/android/device_stats_monitor/device_stats_monitor.cc b/tools/android/device_stats_monitor/device_stats_monitor.cc
deleted file mode 100644
index ef2fee9d9e09de2cb61ba1e9e067bd7b7685b86a..0000000000000000000000000000000000000000
--- a/tools/android/device_stats_monitor/device_stats_monitor.cc
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Dumps CPU and IO stats to a file at a regular interval.
-//
-// Output may be post processed by host to get top/iotop style information.
-
-#include <signal.h>
-#include <unistd.h>
-
-#include <fstream>
-#include <string>
-#include <vector>
-
-#include "base/command_line.h"
-#include "base/file_util.h"
-#include "base/strings/string_split.h"
-
-namespace {
-
-const char kIOStatsPath[] = "/proc/diskstats";
-const char kCPUStatsPath[] = "/proc/stat";
-
-class DeviceStatsMonitor {
- public:
- explicit DeviceStatsMonitor(const std::string& out_path)
- : out_path_(out_path),
- record_(true) {
- CHECK(!out_path_.empty());
- samples_.reserve(1024 * 1024);
- }
-
- // Records stats continuously at |hz| cycles per second util
- // StopRecordingAndDumpStats() is called.
- //
- // Yes, this buffers everything in memory, so it cannot be used for extended
- // durations without OOM. But that beats writing during the trace which
- // would affect the results.
- void Start(int hz) {
- const int sample_interval = 1000000 / hz;
- const base::FilePath io_stats_path(kIOStatsPath);
- const base::FilePath cpu_stats_path(kCPUStatsPath);
- std::string out;
- while (record_) {
- out.clear();
- CHECK(base::ReadFileToString(io_stats_path, &out));
- CHECK(base::ReadFileToString(cpu_stats_path, &out));
- samples_.push_back(out);
- usleep(sample_interval);
- }
- }
-
- // Stops recording and saves samples to file.
- void StopAndDumpStats() {
- record_ = false;
- usleep(250 * 1000);
- std::ofstream out_stream;
- out_stream.open(out_path_.value().c_str(), std::ios::out);
- for (std::vector<std::string>::const_iterator i = samples_.begin();
- i != samples_.end(); ++i) {
- out_stream << i->c_str() << std::endl;
- }
- out_stream.close();
- }
-
- private:
- const base::FilePath out_path_;
- std::vector<std::string> samples_;
- bool record_;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceStatsMonitor);
-};
-
-DeviceStatsMonitor* g_device_stats_monitor = NULL;
-
-void SigTermHandler(int unused) {
- printf("Stopping device stats monitor\n");
- g_device_stats_monitor->StopAndDumpStats();
-}
-
-} // namespace
-
-int main(int argc, char** argv) {
- const int kDefaultHz = 20;
-
- CommandLine command_line(argc, argv);
- CommandLine::StringVector args = command_line.GetArgs();
- if (command_line.HasSwitch("h") || command_line.HasSwitch("help") ||
- args.size() != 1) {
- printf("Usage: %s OUTPUT_FILE\n"
- " --hz=HZ Number of samples/second. default=%d\n",
- argv[0], kDefaultHz);
- return 1;
- }
-
- int hz = command_line.HasSwitch("hz") ?
- atoi(command_line.GetSwitchValueNative("hz").c_str()) :
- kDefaultHz;
-
- printf("Starting device stats monitor\n");
- g_device_stats_monitor = new DeviceStatsMonitor(args[0]);
- signal(SIGTERM, SigTermHandler);
- g_device_stats_monitor->Start(hz);
- delete g_device_stats_monitor;
-
- return 0;
-}
« no previous file with comments | « tools/android/android_tools.gyp ('k') | tools/android/device_stats_monitor/device_stats_monitor.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698