New issue
Advanced search Search tips

Issue 830005 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug-Regression



Sign in to add a comment

App binary size increased a lot after upgrading cronet version from 60.0.3112.89 to 65.0.3325.152

Reported by j...@snapchat.com, Apr 6 2018

Issue description

Steps to reproduce the problem:
1. Checkout to version 65.0.3325.152 and build static cronet libs by running the following commands:
gn gen out/Release-iphoneos --args='is_cronet_build=true ios_enable_code_signing=false is_component_build=false  target_cpu = "arm" target_os="ios" enable_websockets=false disable_file_support=true disable_ftp_support=true use_platform_icu_alternatives=true disable_brotli_filter=true is_component_build=false is_debug=false enable_dsyms=true enable_stripping=true symbol_level=0 use_xcode_clang=true additional_target_cpus = [ "arm64" ]' --ide=xcode

ninja -C out/Release-iphoneos libcronet
2. Replace the old lib binary with the new one
3. Build the app and sees a app binary increase about 1.5mb (compressed size)

What is the expected behavior?

What went wrong?
Don't expect there would be such a big difference for the binary size. We are wondering if there are new libraries introduced in 65.0.3325.152 compared with 60.0.3112.89, and if the size increase is expected. The binary size increase for the static lib itself is about 2mb.

Did this work before? Yes 60.0.3112.89

Chrome version: 65.0.3325.152  Channel: stable
OS Version: OS X 10.12.6
Flash Version:
 
Components: -Internals>Installer Internals>Network>Library
Owner: mef@chromium.org
Status: Assigned (was: Unconfirmed)
I can confirm that Cronet.framework has gained about 2mb between smallest size in M60:

  6675440 60.0.3104.0/Release-iphoneos/cronet/Cronet.framework/Cronet

and biggest in M71:

  8777920 71.0.3542.2/Release-iphoneos/cronet/Cronet.framework/Cronet

See attached file for details. 
The growth appears to be somewhat gradual with few bigger jumps.

We can start by identifying and addressing bigger jumps.
We should also setup binary size monitoring similar to Cronet for Android.


 
cronet_release_size.txt
235 KB View Download
One thing that could be useful for 3p clients is to remove dependency on //components/metrics. 


It pulls in over 200k of binary code and is not useful outside of 1p apps.

There is prototype CL https://chromium-review.googlesource.com/c/chromium/src/+/1213511 that can be productized by introducing a gn flag for that.


Project Member

Comment 5 by bugdroid1@chromium.org, Oct 2

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

commit a0b0fe610da36cd96ea30e314337e54ba884fe4c
Author: Misha Efimov <mef@google.com>
Date: Tue Oct 02 14:23:44 2018

[Cronet] Optionally remove //components/metrics dependency to reduce binary size.

Add disable_histogram_support gn argument. If set to "true", then GetHistogramDeltas()
support is disabled, and Cronet size is reduced by about 200 kilobytes.

Bug:  830005 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;master.tryserver.chromium.android:android_cronet_tester
Change-Id: I34806415bc08e700e8753e728572da896f1edf04
Reviewed-on: https://chromium-review.googlesource.com/1256122
Commit-Queue: Misha Efimov <mef@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595827}
[modify] https://crrev.com/a0b0fe610da36cd96ea30e314337e54ba884fe4c/components/cronet/BUILD.gn
[modify] https://crrev.com/a0b0fe610da36cd96ea30e314337e54ba884fe4c/components/cronet/ios/BUILD.gn
[modify] https://crrev.com/a0b0fe610da36cd96ea30e314337e54ba884fe4c/components/cronet/ios/cronet_environment.mm
[modify] https://crrev.com/a0b0fe610da36cd96ea30e314337e54ba884fe4c/components/cronet/ios/test/BUILD.gn
[modify] https://crrev.com/a0b0fe610da36cd96ea30e314337e54ba884fe4c/components/cronet/ios/test/cronet_http_test.mm

Status: Fixed (was: Assigned)
We don't expect to do any additional work on this.

Sign in to add a comment