summaryrefslogtreecommitdiffstats
path: root/base/profiler
diff options
context:
space:
mode:
Diffstat (limited to 'base/profiler')
-rw-r--r--base/profiler/scoped_profile.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/base/profiler/scoped_profile.h b/base/profiler/scoped_profile.h
index 2754f5e..8b77d6d 100644
--- a/base/profiler/scoped_profile.h
+++ b/base/profiler/scoped_profile.h
@@ -16,11 +16,31 @@
#include "base/location.h"
#include "base/profiler/tracked_time.h"
-#define TRACK_RUN_IN_THIS_SCOPED_REGION_FOR_OFFICIAL_BUILDS(variable_name) \
- ::tracked_objects::ScopedProfile variable_name(FROM_HERE)
+#if defined(GOOGLE_CHROME_BUILD)
-#define TRACK_RUN_IN_IPC_HANDLER(dispatch_function_name) \
- ::tracked_objects::ScopedProfile some_tracking_variable_name( \
+// We don't ship these profiled regions. This is for developer builds only.
+// It allows developers to do some profiling of their code, and see results on
+// their about:profiler page.
+#define TRACK_RUN_IN_THIS_SCOPED_REGION_FOR_DEVELOPER_BUILDS(scope_name) \
+ ((void)0)
+
+#else
+
+#define TRACK_RUN_IN_THIS_SCOPED_REGION_FOR_DEVELOPER_BUILDS(scope_name) \
+ ::tracked_objects::ScopedProfile LINE_BASED_VARIABLE_NAME_FOR_PROFILING( \
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(#scope_name))
+
+#endif
+
+
+
+#define PASTE_LINE_NUMBER_ON_NAME(name, line) name##line
+
+#define LINE_BASED_VARIABLE_NAME_FOR_PROFILING \
+ PASTE_LINE_NUMBER_ON_NAME(some_profiler_variable_, __LINE__)
+
+#define TRACK_RUN_IN_IPC_HANDLER(dispatch_function_name) \
+ ::tracked_objects::ScopedProfile some_tracking_variable_name( \
FROM_HERE_WITH_EXPLICIT_FUNCTION(#dispatch_function_name))