Index: content/app/content_main_runner.cc |
=================================================================== |
--- content/app/content_main_runner.cc (revision 148994) |
+++ content/app/content_main_runner.cc (working copy) |
@@ -4,6 +4,8 @@ |
#include "content/public/app/content_main_runner.h" |
+#include <stdlib.h> |
+ |
#include "base/allocator/allocator_extension.h" |
#include "base/at_exit.h" |
#include "base/command_line.h" |
@@ -17,6 +19,7 @@ |
#include "base/metrics/stats_table.h" |
#include "base/path_service.h" |
#include "base/process_util.h" |
+#include "base/profiler/alternate_timer.h" |
#include "base/stringprintf.h" |
#include "base/string_number_conversions.h" |
#include "content/browser/browser_main.h" |
@@ -450,6 +453,17 @@ |
// On windows, we've already set these thunks up in _heap_init() |
base::allocator::SetGetStatsFunction(GetStatsThunk); |
base::allocator::SetReleaseFreeMemoryFunction(ReleaseFreeMemoryThunk); |
+ |
+ // Provide optional hook for monitoring allocation quantities on a |
+ // per-thread basis. Only set the hook if the environment indicates this |
+ // needs to be enabled. |
+ const char* profiling = getenv(tracked_objects::kAlternateProfilerTime); |
+ if (profiling && |
+ (atoi(profiling) == tracked_objects::TIME_SOURCE_TYPE_TCMALLOC)) { |
+ tracked_objects::SetAlternateTimeSource( |
+ MallocExtension::GetBytesAllocatedOnCurrentThread, |
+ tracked_objects::TIME_SOURCE_TYPE_TCMALLOC); |
+ } |
#endif |
// On Android, |