New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 715949 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
please use my google.com address
Closed: May 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

24KB regression in resource_sizes (MonochromePublic.apk) at 467230:467230

Project Member Reported by rmcilroy@chromium.org, Apr 27 2017

Issue description

Ken, looks like the CL "Migrate Mash to use embedded services" increased the binary size by 24KB on Android. Can anything be done to reduce this?
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=715949

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgIDg0v76pgkM


Bot(s) for this bug's original alert(s):

Android Builder

Comment 3 by roc...@chromium.org, Apr 27 2017

This should recover as of r467448. Will keep an eye on it.

Comment 4 by roc...@chromium.org, Apr 27 2017

Hmm, r467448 appears to have had no impact on the APK size so my assumption was incorrect. I'm not really sure where this 24 kB is coming from.
Project Member

Comment 5 by 42576172...@developer.gserviceaccount.com, Apr 28 2017

Cc: roc...@chromium.org

=== Auto-CCing suspected CL author rockot@chromium.org ===

Hi rockot@chromium.org, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : Ken Rockot
  Commit : 74946c37525c8b29f9b7b117c2d092a31b467b4d
  Date   : Wed Apr 26 04:04:15 2017
  Subject: Migrate Mash to use embedded services

Bisect Details
  Configuration: android_nexus7_perf_bisect
  Benchmark    : resource_sizes
  Metric       : MonochromePublic.apk_Specifics/normalized apk size
  Change       : 0.03% | 73722328.0 -> 73746936.0

Revision             Result               N
chromium@467229      73722328 +- 0.0      6      good
chromium@467230      73746936 +- 0.0      6      bad       <--

To Run This Test
  src/build/android/resource_sizes.py --chromium-output-directory {CHROMIUM_OUTPUT_DIR} --chartjson {CHROMIUM_OUTPUT_DIR}/apks/MonochromePublic.apk

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8981169166909500512

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=6374943358451712


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!

Comment 6 by roc...@chromium.org, Apr 28 2017

Some of this is just legitimate size increase because a lot of code was added here. I've identified a few bits than can be trimmed, and local testing suggests that should knock off around ~30-40% of this increase. Will land that change for now.
Labels: -Restrict-View-Google
Summary: 24KB regression in resource_sizes (MonochromePublic.apk) at 467230:467230 (was: 0% regression in resource_sizes (MonochromePublic.apk) at 467230:467230)
Sorry for not chiming in last week, but probably helpful to run:

//tools/binary_size/diagnose_apk_bloat.py to see exactly where the size went. 


E.g. for the commit that caused the alert:

Section Sizes (Total=20,264 bytes):
    .bss: 32 bytes (not included in totals)
    .data: 32 bytes (0.2%)
    .data.rel.ro: 112 bytes (0.6%)
    .data.rel.ro.local: 384 bytes (1.9%)
    .rodata: 3,072 bytes (15.2%)
    .text: 16,664 bytes (82.2%)

156 symbols added (+), 18 changed (~), 12 removed (-), 317767 unchanged (not shown)
15 object files added, 2 removed

Showing 186 symbols with total size: 19922 bytes
.text=15.9kb     .rodata=3.00kb     other=528 bytes  total=19.5kb
Number of object files: 35

First columns are: running total, type, size
~     2507 r@Group      2507    {no path}
               ** merge strings (count=6)
+     3879 t@0xb7088c   1372    services/service_manager/standalone/standalone/context.o
               service_manager::Context::Context
~     5139 t@0xb6f534   1260    services/service_manager/embedder/embedder/main.o
               service_manager::Main
+     5737 t@0xb72978   598     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::ProviderStubDispatch::Accept
+     6287 t@0xb71558   550     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::StopTracingAndFlushToDisk
+     6727 t@0xb71acc   440     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::Bind
+     7159 t@0xb6fb28   432     services/service_manager/embedder/embedder/main.o
               service_manager::RunService const [clone .isra.34]
+     7547 t@0xb71e1c   388     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::InitializeWithFactoryInternal
+     7931 t@0x1553ce8  384     chrome/app/shutdown_signal_handlers/shutdown_signal_handlers_posix.o
               ShutdownDetector::ThreadMain
+     8305 t@0x1553b74  374     chrome/app/shutdown_signal_handlers/shutdown_signal_handlers_posix.o
               InstallShutdownSignalHandlers
+     8633 t@0xb71368   328     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::OnDataComplete
+     8953 t@0x31ba78   320     base/base/command_line.o
               base::CommandLine::operator=
+     9273 t@0x1516a94  320     content/app/both/content_service_manager_main_delegate.o
               content::ContentServiceManagerMainDelegate::AdjustServiceProcessCommandLine
+     9593 t@0xb70220   320     services/service_manager/background/lib/background_service_manager.o
               service_manager::BackgroundServiceManager::BackgroundServiceManager
+     9905 t@0xb71fe4   312     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::SendChunk
+    10215 t@0xb72786   310     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::FactoryProxy::CreateRecorder
+    10523 t@0xb71124   308     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::Start
+    10815 t@0xb70644   292     services/service_manager/standalone/standalone/context.o
               service_manager::BindInterface<tracing::mojom::Factory>
+    11107 t@0xb70768   292     services/service_manager/standalone/standalone/context.o
               service_manager::BindInterface<tracing::mojom::StartupPerformanceDataCollector>
+    11381 t@0xad7ef0   274     mojo/common/common_base/data_pipe_drainer.o
               mojo::common::DataPipeDrainer::DataPipeDrainer
+    11643 t@0xb71020   262     services/service_manager/standalone/standalone/tracer.o
               mojo::internal::InterfacePtrState<tracing::mojom::Collector>::ConfigureProxyIfNecessary [clone .part.45]
+    11887 t@0x15539d4  244     chrome/app/shutdown_signal_handlers/shutdown_signal_handlers_posix.o
               GracefulShutdownHandler
+    12131 t@0xb7043c   244     services/service_manager/background/lib/background_service_manager.o
               service_manager::BackgroundServiceManager::~BackgroundServiceManager
+    12367 t@0xb70558   236     services/service_manager/standalone/standalone/context.o
               service_manager::BindInterface<tracing::mojom::Collector>
+    12599 t@0xb71920   232     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::ForceEnableTracing
+    12827 t@0xb6f0c4   228     services/service_manager/public/cpp/standalone_service/standalone_service/standalone_service.o
               service_manager::RunStandaloneService
+    13047 t@0xb70360   220     services/service_manager/background/lib/background_service_manager.o
               service_manager::BackgroundServiceManager::SetInstanceQuitCallback
+    13265 t@0xb726ac   218     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::CollectorProxy::Start
-    13051 t@0xce1930   -214    content/browser/browser/media_interface_proxy.o
               mojo::InterfaceRequest<media::mojom::InterfaceFactory>::InterfaceRequest
+    13265 t@0xb71cd2   214     services/tracing/public/cpp/cpp/provider.o
               mojo::InterfaceRequest<tracing::mojom::Provider>::InterfaceRequest
+    13461 t@0xb71a08   196     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::DelayedStop
+    13649 t@0xb725f0   188     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollector_GetStartupPerformanceTimes_ForwardToCallback::Accept
+    13835 t@0xb728bc   186     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               mojo::internal::Serializer<mojo::InterfacePtrDataView<tracing::mojom::RecorderInterfaceBase>, mojo::InterfacePtr<tracing::mojom::Recorder> >::Deserialize
+    14021 t@0xb7214c   186     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::ProviderRequestValidator::Accept
+    14193 t@0xb6eacc   172     services/service_manager/runner/host/lib/service_process_launcher.o
               service_manager::ServiceProcessLauncher::ServiceProcessLauncher
+    14359 t@0xb714b0   166     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::StartCollectingFromTracingService
+    14519 t@0xb72550   160     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy::GetStartupPerformanceTimes
+    14679 t@0xb72204   160     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorResponseValidator::Accept
+    14835 t@0x344de8   156     base/base/run_loop.o
               base::RunLoop::QuitClosure
+    14987 t@0xb712d0   152     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::WriteFooterAndClose
+    15139 t@0xb72c8c   152     services/tracing/public/interfaces/interfaces_shared_cpp_sources/tracing.mojom-shared.o
               tracing::mojom::internal::Provider_StartTracing_Params_Data::Validate
+    15289 t@0xb700c8   150     services/service_manager/background/lib/background_service_manager.o
               service_manager::CallCallbackWithIdentity
+    15431 t@0xb72c00   142     services/tracing/public/interfaces/interfaces_shared_cpp_sources/tracing.mojom-shared.o
               tracing::mojom::internal::StartupPerformanceDataCollector_GetStartupPerformanceTimes_ResponseParams_Data::Validate
+    15567 t@0xb70eac   136     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::EndTraceAndFlush
+    15701 t@0xb71824   134     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::StopTracing
+    15829 t@0xb6f4b4   128     services/service_manager/embedder/embedder/main.o
               service_manager::ServiceProcessLauncherDelegateImpl::AdjustCommandLineArgumentsForTarget
~    15949 t@0xa8444c   120     content/common/common/service_manager_connection_impl.o
               content::ServiceManagerConnectionImpl::IOThreadContext::CreateService
+    16069 t@0xb71258   120     services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::OnDataAvailable
+    16187 t@0xb72464   118     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy::SetBrowserOpenTabsTimeDelta
+    16305 t@0xb724da   118     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy::SetFirstVisuallyNonEmptyLayoutTicks
+    16423 t@0xb723ee   118     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy::SetServiceManagerMainEntryPointTime
+    16541 t@0xb72378   118     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy::SetServiceManagerProcessCreationTime
+    16657 t@0xb71da8   116     services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::StartTracing
+    16769 t@0xb72308   112     services/tracing/public/interfaces/interfaces/tracing.mojom.o
               mojo::StructTraits<tracing::mojom::StartupPerformanceTimesDataView, mojo::StructPtr<tracing::mojom::StartupPerformanceTimes> >::Read
+    16869 t@0xb70190   100     services/service_manager/background/lib/background_service_manager.o
               service_manager::BackgroundServiceManager::SetInstanceQuitCallbackOnBackgroundThread
+    16965 t@0xb70040   96      services/service_manager/background/lib/background_service_manager.o
               base::internal::Invoker<base::internal::BindState<void (service_manager::BackgroundServiceManager::*)(service_manager::ServiceProcessLauncher::Delegate*, std::__ndk1::unique_ptr<base::Value, std::__ndk1::default_delete<base::Value> >), base::internal::UnretainedWrapper<service_manager::BackgroundServiceManager>, service_manager::ServiceProcessLauncher::Delegate*, base::internal::PassedWrapper<std::__ndk1::unique_ptr<base::Value, std::__ndk1::default_delete<base::Value> > > >, void ()>::Run
+    17057 t@0xb70f9c   92      services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::WriteTraceDataCollected
+    17141 t@0x1952cdc  84      services/service_manager/public/cpp/libsources.a/identity.o
               service_manager::Identity::Identity
+    17223 t@0xb70de8   82      services/service_manager/standalone/standalone/context.o
               service_manager::Context::~Context
+    17301 t@0x2ffcd8   78      chrome/chrome_android_core/chrome_main_delegate.o
               ChromeMainDelegate::OverrideProcessType
+    17379 t@0xb6fff2   78      services/service_manager/background/lib/background_service_manager.o
               service_manager::BackgroundServiceManager::InitializeOnBackgroundThread
+    17455 t@0xb71788   76      services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::~Tracer
-    17381 t@0x194e94a  -74     services/service_manager/public/cpp/libsources.a/identity.o
               service_manager::Identity::Identity
+    17451 t@0xb718dc   70      services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::Provider
+    17519 t@0xb71fa0   68      services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::InitializeWithFactory
+    17581 t@0xad8022   62      mojo/common/common_base/data_pipe_drainer.o
               mojo::common::DataPipeDrainer::ReadData
+    17641 t@0xb70e70   60      services/service_manager/standalone/standalone/tracer.o
               base::internal::Invoker<base::internal::BindState<void (service_manager::Tracer::*)(base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, scoped_refptr<base::RefCountedString> const&, bool), base::internal::UnretainedWrapper<service_manager::Tracer>, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void (scoped_refptr<base::RefCountedString> const&, bool)>::Run
+    17701 t@0xb70f34   60      services/service_manager/standalone/standalone/tracer.o
               service_manager::Tracer::Tracer
+    17761 t@0xb71c84   60      services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::~Provider
+    17817 d@0x2cdbc80  56      services/service_manager/embedder/embedder/main_delegate.o
               service_manager::MainDelegate [vtable]
+    17871 t@0xb6fcd8   54      services/service_manager/embedder/embedder/main.o
               base::internal::Invoker<base::internal::BindState<service_manager::RunService(service_manager::MainDelegate*)::{{lambda(service_manager::MainDelegate*, int*, mojo::InterfaceRequest<service_manager::mojom::Service>)#1}}, service_manager::MainDelegate*, int*>, void (mojo::InterfaceRequest<service_manager::mojom::Service>)>::Run
-    17817 t@0xc4ba36   -54     content/browser/browser/download_item_impl.o
               base::internal::Invoker<base::internal::BindState<void (content::DownloadFile::*)(base::FilePath const&, base::Callback<void (content::DownloadInterruptReason, base::FilePath const&), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&), base::internal::UnretainedWrapper<content::DownloadFile>, base::FilePath, base::Callback<void (content::DownloadInterruptReason, base::FilePath const&), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void ()>::Run
+    17871 t@0xb70e3a   54      services/service_manager/standalone/standalone/tracer.o
               base::internal::Invoker<base::internal::BindState<void (service_manager::Tracer::*)(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&), base::internal::UnretainedWrapper<service_manager::Tracer>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void ()>::Run
+    17923 t@0xb7015c   52      services/service_manager/background/lib/background_service_manager.o
               base::internal::Invoker<base::internal::BindState<void (*)(scoped_refptr<base::TaskRunner>, base::Callback<void (service_manager::Identity const&), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, service_manager::Identity const&), scoped_refptr<base::SingleThreadTaskRunner>, base::Callback<void (service_manager::Identity const&), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void (service_manager::Identity const&)>::Run
~    17871 t@0x1952d30  -52     services/service_manager/public/cpp/libsources.a/identity.o
               service_manager::Identity::Identity
-    17821 t@0xd86138   -50     content/browser/browser/tracing_controller_impl.o
               base::internal::Invoker<base::internal::BindState<void (content::TracingControllerImpl::*)(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool), base::internal::UnretainedWrapper<content::TracingControllerImpl> >, void (std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)>::Run
+    17871 t@0xb717f0   50      services/tracing/public/cpp/cpp/provider.o
               base::internal::Invoker<base::internal::BindState<void (tracing::Provider::*)(scoped_refptr<base::RefCountedString> const&, bool), base::internal::UnretainedWrapper<tracing::Provider> >, void (scoped_refptr<base::RefCountedString> const&, bool)>::Run
+    17921 t@0xb718a8   50      services/tracing/public/cpp/cpp/provider.o
               tracing::Provider::StopIfForced
+    17971 t@0xb72bcc   50      services/tracing/public/interfaces/interfaces_shared_cpp_sources/tracing.mojom-shared.o
               tracing::mojom::internal::StartupPerformanceTimes_Data::Validate
+    18019 t@0x1553b30  48      chrome/app/shutdown_signal_handlers/shutdown_signal_handlers_posix.o
               ShutdownDetector::~ShutdownDetector
+    18067 t@0x1516a64  48      content/app/both/content_service_manager_main_delegate.o
               content::ContentServiceManagerMainDelegate::ShouldLaunchAsServiceProcess
+    18115 r@0x29e0db8  48      services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollector::Name_
+    18163 d@0x2c1c9c8  48      services/tracing/public/interfaces/interfaces/tracing.mojom.o
               tracing::mojom::StartupPerformanceDataCollectorProxy [vtable]
+    18207 t@0xb701f4   44      services/service_manager/background/lib/background_service_manager.o
               base::internal::BindState<void (service_manager::BackgroundServiceManager::*)(service_manager::ServiceProcessLauncher::Delegate*, std::__ndk1::unique_ptr<base::Value, std::__ndk1::default_delete<base::Value> >), base::internal::UnretainedWrapper<service_manager::BackgroundServiceManager>, service_manager::ServiceProcessLauncher::Delegate*, base::internal::PassedWrapper<std::__ndk1::unique_ptr<base::Value, std::__ndk1::default_delete<base::Value> > > >::Destroy
+    18251 t@0xb70f70   44      services/service_manager/standalone/standalone/tracer.o
...
Thanks, that's helpful. It confirms what I managed to figure out through much more effort without the tool :(, which is that the increase is all legitimate code addition.

I could cut out 4-5k in the short term by explicitly removing the tracing stuff for Android only. It's not needed in production at the moment, but it will eventually be used in production and hacking it out here will be a bit messy. I think it's probably not worth doing. WDYT?
Status: WontFix (was: Assigned)
Sounds good. The main goal of these size alerts is just to ensure we've done sanity checks. We have bug 702718 for trying to reduce the overhead of tracing, so makes sense to leave them in if they will eventually be needed.
Labels: Performance-Tradeoff
Labels: -binary-size Performance-Size

Sign in to add a comment