From c326671407f8790fbb7ee14ca59ac37aa25afa87 Mon Sep 17 00:00:00 2001 From: rockot Date: Fri, 18 Mar 2016 06:50:35 -0700 Subject: Instrument EDK sync Broker initialization Bringing up Mojo at process startup caused a regression on OS X renderer startup times. At least half of the regression seems to be attributable to blocking on getting the parent pipe handle from the sync broker channel. We can eliminate this behavior on OS X now that we're using Mach shm, but let's also make sure it's not causing problems elsewhere in the wild. BUG=591742 Review URL: https://codereview.chromium.org/1805923006 Cr-Commit-Position: refs/heads/master@{#381953} --- mojo/edk/system/node_controller.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mojo') diff --git a/mojo/edk/system/node_controller.cc b/mojo/edk/system/node_controller.cc index 698238d..58c87e2 100644 --- a/mojo/edk/system/node_controller.cc +++ b/mojo/edk/system/node_controller.cc @@ -14,6 +14,7 @@ #include "base/message_loop/message_loop.h" #include "base/metrics/histogram_macros.h" #include "base/process/process_handle.h" +#include "base/timer/elapsed_timer.h" #include "crypto/random.h" #include "mojo/edk/embedder/embedder_internal.h" #include "mojo/edk/embedder/platform_channel_pair.h" @@ -143,8 +144,11 @@ void NodeController::ConnectToParent(ScopedPlatformHandle platform_handle) { #if defined(OS_POSIX) && !defined(OS_MACOSX) // On posix, use the bootstrap channel for the broker and receive the node's // channel synchronously as the first message from the broker. + base::ElapsedTimer timer; broker_.reset(new Broker(std::move(platform_handle))); platform_handle = broker_->GetParentPlatformHandle(); + UMA_HISTOGRAM_TIMES("Mojo.System.GetParentPlatformHandleSyncTime", + timer.Elapsed()); #endif io_task_runner_->PostTask( -- cgit v1.1