Commit 24cdc122 authored by Sigurdur Asgeirsson's avatar Sigurdur Asgeirsson Committed by Commit Bot

RC: Integrate performance measurement under a new Feature.

Also remove the feature for periodic CPU measurement that was apparently
never used.

Bug: 755840
Change-Id: Ifd04398e5727be118f7f2d22c90676ec1265976a
Reviewed-on: https://chromium-review.googlesource.com/1163318
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581245}
parent d2e82c61
......@@ -6,6 +6,8 @@
#include "base/process/process.h"
#include "chrome/browser/resource_coordinator/browser_child_process_watcher.h"
#include "chrome/browser/resource_coordinator/page_signal_receiver.h"
#include "chrome/browser/resource_coordinator/render_process_probe.h"
#include "content/public/common/service_manager_connection.h"
#include "services/resource_coordinator/public/cpp/process_resource_coordinator.h"
#include "services/resource_coordinator/public/cpp/resource_coordinator_features.h"
......@@ -31,3 +33,19 @@ void ChromeBrowserMainExtraPartsResourceCoordinator::
browser_child_process_watcher_ =
std::make_unique<resource_coordinator::BrowserChildProcessWatcher>();
}
void ChromeBrowserMainExtraPartsResourceCoordinator::PreBrowserStart() {
if (base::FeatureList::IsEnabled(features::kPerformanceMeasurement)) {
DCHECK(resource_coordinator::RenderProcessProbe::IsEnabled());
resource_coordinator::PageSignalReceiver* page_signal_receiver =
resource_coordinator::PageSignalReceiver::GetInstance();
DCHECK(resource_coordinator::PageSignalReceiver::IsEnabled());
resource_coordinator::RenderProcessProbe* render_process_probe =
resource_coordinator::RenderProcessProbe::GetInstance();
performance_measurement_manager_ =
std::make_unique<resource_coordinator::PerformanceMeasurementManager>(
page_signal_receiver, render_process_probe);
}
}
......@@ -9,6 +9,7 @@
#include "base/macros.h"
#include "chrome/browser/chrome_browser_main_extra_parts.h"
#include "chrome/browser/resource_coordinator/browser_child_process_watcher.h"
#include "chrome/browser/resource_coordinator/performance_measurement_manager.h"
namespace resource_coordinator {
......@@ -26,6 +27,7 @@ class ChromeBrowserMainExtraPartsResourceCoordinator
// ChromeBrowserMainExtraParts overrides.
void ServiceManagerConnectionStarted(
content::ServiceManagerConnection* connection) override;
void PreBrowserStart() override;
std::unique_ptr<resource_coordinator::ProcessResourceCoordinator>
process_resource_coordinator_;
......@@ -33,6 +35,9 @@ class ChromeBrowserMainExtraPartsResourceCoordinator
std::unique_ptr<resource_coordinator::BrowserChildProcessWatcher>
browser_child_process_watcher_;
std::unique_ptr<resource_coordinator::PerformanceMeasurementManager>
performance_measurement_manager_;
DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsResourceCoordinator);
};
......
......@@ -32,8 +32,7 @@ RenderProcessProbe* RenderProcessProbe::GetInstance() {
// static
bool RenderProcessProbe::IsEnabled() {
// Check that service_manager is active, GRC is enabled,
// and render process CPU profiling is enabled.
// Check that service_manager is active and GRC is enabled.
return content::ServiceManagerConnection::GetForProcess() != nullptr &&
resource_coordinator::IsResourceCoordinatorEnabled();
}
......
......@@ -25,6 +25,10 @@ const base::Feature kGlobalResourceCoordinator{
const base::Feature kPageAlmostIdle{"PageAlmostIdle",
base::FEATURE_DISABLED_BY_DEFAULT};
// Enables CPU/memory performance measurements on PageAlmostIdle events.
const base::Feature kPerformanceMeasurement{"PerformanceMeasurement",
base::FEATURE_DISABLED_BY_DEFAULT};
} // namespace features
namespace resource_coordinator {
......
......@@ -19,6 +19,8 @@ extern const SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_EXPORT base::Feature
kGlobalResourceCoordinator;
extern const SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_EXPORT base::Feature
kPageAlmostIdle;
extern const SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_EXPORT base::Feature
kPerformanceMeasurement;
} // namespace features
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment