New issue
Advanced search Search tips

Issue 900688 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Potential jank caused by ProxyServiceFactory::CreateProxyConfigService()

Project Member Reported by ssid@chromium.org, Oct 31

Issue description

We collected slow reports from users facing janks and found that the function mentioned above is taking too much time on the main thread, potentially causing janks.
The issue can be found in reports:

34680810bd933ccc - 300ms

Go to crash/ReportID to view the traces.

The stack trace that was hit the most:

<disk reads>
__ioctl
ioctl
<missing java stack>
net::ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(scoped_refptr<base::SequencedTaskRunner> const&, scoped_refptr<base::SequencedTaskRunner> const&)
net::ProxyResolutionService::CreateSystemProxyConfigService(scoped_refptr<base::SequencedTaskRunner> const&)
ProxyServiceFactory::CreateProxyConfigService(PrefProxyConfigTracker*)
ProxyConfigMonitor::ProxyConfigMonitor(Profile*)
ProfileNetworkContextService::ProfileNetworkContextService(Profile*)
BrowserContextKeyedServiceFactory::BuildServiceInstanceFor(base::SupportsUserData*) const
KeyedServiceFactory::GetServiceForContext(base::SupportsUserData*, bool)
ProfileIOData::InitializeOnUIThread(Profile*)
ProfileImplIOData::Handle::LazyInitialize() const
ProfileImplIOData::Handle::GetResourceContext() const
content::StoragePartitionImplMap::Get(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool, bool)
content::(anonymous namespace)::GetStoragePartitionFromConfig(content::BrowserContext*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool, bool)
content::BrowserContext::GetStoragePartition(content::BrowserContext*, content::SiteInstance*, bool)
ProfileImpl::OnPrefsLoaded(Profile::CreateMode, bool)
Profile::CreateProfile(base::FilePath const&, Profile::Delegate*, Profile::CreateMode)
ProfileManager::CreateProfileHelper(base::FilePath const&)
ProfileManager::GetProfile(base::FilePath const&)
ProfileManager::CreateInitialProfile()
ChromeBrowserMainParts::PreMainMessageLoopRun()
content::BrowserMainLoop::PreMainMessageLoopRun()
base::internal::Invoker<base::internal::BindState<int (content::BrowserMainLoop::*)(), base::internal::UnretainedWrapper<content::BrowserMainLoop> >, int ()>::Run(base::internal::BindStateBase*)
content::StartupTaskRunner::WrappedTask()
base::internal::Invoker<base::internal::BindState<void (media::AudioInputController::*)(), base::internal::UnretainedWrapper<media::AudioInputController> >, void ()>::Run(base::internal::BindStateBase*)
base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)
base::MessageLoop::DoWork()
base::MessagePumpForUI::OnNonDelayedLooperCallback()
base::(anonymous namespace)::NonDelayedLooperCallback(int, int, void*)
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22fe1e27861336ed32555cd0c39a09e7ae540ef2

commit 22fe1e27861336ed32555cd0c39a09e7ae540ef2
Author: Siddhartha <ssid@chromium.org>
Date: Wed Nov 07 10:00:19 2018

Add service name to trace event to GetService trace event

This data is useful to understand startup regressions from users.
Storing of service name in base factory is not a lot of overhead
considering that the strings are already part of binary.

BUG=900688
TBR=blundell@chromium.org

Change-Id: I240900515431fc56f005c7198ce0aea0645b3a62
Reviewed-on: https://chromium-review.googlesource.com/c/1311613
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Reviewed-by: Cait Phillips <caitkp@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606005}
[modify] https://crrev.com/22fe1e27861336ed32555cd0c39a09e7ae540ef2/chrome/common/trace_event_args_whitelist.cc
[modify] https://crrev.com/22fe1e27861336ed32555cd0c39a09e7ae540ef2/components/keyed_service/core/keyed_service_base_factory.cc
[modify] https://crrev.com/22fe1e27861336ed32555cd0c39a09e7ae540ef2/components/keyed_service/core/keyed_service_base_factory.h
[modify] https://crrev.com/22fe1e27861336ed32555cd0c39a09e7ae540ef2/components/keyed_service/core/keyed_service_factory.cc

Sign in to add a comment