Index: content/browser/browser_main_runner.cc |
diff --git a/content/browser/browser_main_runner.cc b/content/browser/browser_main_runner.cc |
index 96a3454f1499edbb0211afbcdb1ba8024cb6e2bc..b3c261f56a5b9f02a2232fdcf214656b0804547c 100644 |
--- a/content/browser/browser_main_runner.cc |
+++ b/content/browser/browser_main_runner.cc |
@@ -11,6 +11,7 @@ |
#include "base/macros.h" |
#include "base/metrics/histogram.h" |
#include "base/metrics/histogram_macros.h" |
+#include "base/metrics/persistent_histogram_allocator.h" |
#include "base/metrics/statistics_recorder.h" |
#include "base/profiler/scoped_profile.h" |
#include "base/profiler/scoped_tracker.h" |
@@ -60,6 +61,16 @@ class BrowserMainRunnerImpl : public BrowserMainRunner { |
} |
int Initialize(const MainFunctionParams& parameters) override { |
+ // Create persistent/shared memory and allow histograms to be stored in it. |
+ // Memory that is not actualy used won't be physically mapped by the system. |
+ // BrowserMetrics usage, as reported in UMA, peaked around 1.9MiB as of |
+ // 2016-02-20. |
+ base::GlobalHistogramAllocator::CreateWithLocalMemory( |
+ 3 << 20, // 3 MiB |
+ 0x935DDD43, // SHA1(BrowserMetrics) |
+ "BrowserMetrics"); |
+ base::GlobalHistogramAllocator::Disable(); // Enabled by experiment only. |
+ |
SCOPED_UMA_HISTOGRAM_LONG_TIMER( |
"Startup.BrowserMainRunnerImplInitializeLongTime"); |