Issue metadata
Sign in to add a comment
|
24KB regression in resource_sizes (MonochromePublic.apk) at 467230:467230 |
||||||||||||||||||||
Issue descriptionKen, 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?
,
Apr 27 2017
Started bisect job https://chromeperf.appspot.com/buildbucket_job_status/8981169166909500512
,
Apr 27 2017
This should recover as of r467448. Will keep an eye on it.
,
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.
,
Apr 28 2017
=== 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!
,
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.
,
May 1 2017
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
...
,
May 1 2017
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?
,
May 1 2017
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.
,
May 4 2017
,
May 9 2017
|
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by rmcilroy@chromium.org
, Apr 27 2017