summaryrefslogtreecommitdiffstats
path: root/chrome/common/profiling.h
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2011-05-31 20:30:28 +0100
committerKristian Monsen <kristianm@google.com>2011-06-14 20:31:41 -0700
commit72a454cd3513ac24fbdd0e0cb9ad70b86a99b801 (patch)
tree382278a54ce7a744d62fa510a9a80688cc12434b /chrome/common/profiling.h
parentc4becdd46e31d261b930e4b5a539cbc1d45c23a6 (diff)
downloadexternal_chromium-72a454cd3513ac24fbdd0e0cb9ad70b86a99b801.zip
external_chromium-72a454cd3513ac24fbdd0e0cb9ad70b86a99b801.tar.gz
external_chromium-72a454cd3513ac24fbdd0e0cb9ad70b86a99b801.tar.bz2
Merge Chromium.org at r11.0.672.0: Initial merge by git.
Change-Id: I8b4aaf611a2a405fe3fe10e8a94ea7658645c192
Diffstat (limited to 'chrome/common/profiling.h')
-rw-r--r--chrome/common/profiling.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/chrome/common/profiling.h b/chrome/common/profiling.h
new file mode 100644
index 0000000..21aebd1
--- /dev/null
+++ b/chrome/common/profiling.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2006-2008 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.
+
+#ifndef CHROME_COMMON_PROFILING_H_
+#define CHROME_COMMON_PROFILING_H_
+#pragma once
+
+#include "build/build_config.h"
+
+#include "base/basictypes.h"
+#include "base/debug/profiler.h"
+
+// The Profiling class manages the interaction with a sampling based profiler.
+// Its function is controlled by the kProfilingAtStart, kProfilingFile, and
+// kProfilingFlush command line values.
+// All of the API should only be called from the main thread of the process.
+class Profiling {
+ public:
+ // Called early in a process' life to allow profiling of startup time.
+ // the presence of kProfilingAtStart is checked.
+ static void ProcessStarted();
+
+ // Start profiling.
+ static void Start();
+
+ // Stop profiling and write out profiling file.
+ static void Stop();
+
+ // Returns true if the process is being profiled.
+ static bool BeingProfiled();
+
+ // Called when the main message loop is started, so that automatic flushing
+ // of the profile data file can be done.
+ static void MainMessageLoopStarted();
+
+ // Toggle profiling on/off.
+ static void Toggle();
+
+ private:
+ // Do not instantiate this class.
+ Profiling();
+
+ DISALLOW_COPY_AND_ASSIGN(Profiling);
+};
+
+#endif // CHROME_COMMON_PROFILING_H_
+