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

Issue 755227 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug-Regression



Sign in to add a comment

component_updater doubles Cronet binary. 133.7% regression in sizes at 494091:494094

Project Member Reported by xunji...@chromium.org, Aug 14 2017

Issue description

See the link to graphs below.
 
Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Aug 14 2017

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=755227

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=9eb66d22a427f745cdc79d045e74a90dd48f6f15b4084bba03746f4eb8abd6f3


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

android_cronet_x86_builder_dbg
Components: Internals>Network>Library
Labels: -Pri-2 OS-Android Pri-1
Owner: waff...@chromium.org
Status: Assigned (was: Untriaged)
waffles@: 
bisect gives me your CL: https://chromium.googlesource.com/chromium/src/+/404c74d7436c836356f0803afad8c9c63fa3c0a1

cronet depdends on components/metrics. Making components/metrics depend on components_updater doubles Cronet binary size. 
Can you take a look?
Cc: asvitk...@chromium.org
Summary: components_updater doubles Cronet binary. 133.7% regression in sizes at 494091:494094 (was: 133.7% regression in sizes at 494091:494094)
Cc: sorin@chromium.org
Can we put component_metrics_provider.cc and component_metrics_provider.h into a separate target?
Yes, that should work, I'll start on that now.
Summary: component_updater doubles Cronet binary. 133.7% regression in sizes at 494091:494094 (was: components_updater doubles Cronet binary. 133.7% regression in sizes at 494091:494094)
Thank you!
Labels: -Pri-1 Pri-2
The change is reverted at 494132. I will reland with the new provider in a separate target.
Status: Fixed (was: Assigned)
The sizes graphs look the same as before now, so I am marking this as fixed.

Some notes in case you would like to build Cronet locally. Full instructions are at https://chromium.googlesource.com/chromium/src/+/master/components/cronet/android/build_instructions.md 

The size increase is 2x in debug mode and about ~10% in release mode.

To build Cronet in debug mode:
$ ./components/cronet/tools/cr_cronet.py gn
$ ninja -C out/Debug cronet_package

Thanks for the quick fix.
The size graphs reverted because we reverted the CL. I'm still trying to confirm the fix.

I'm having some trouble verifying because of a failure in check_no_neon.py: Do I need to have something beyond a normal checkout to build?
It should just work with a regular Chromium checkout.


Do you have the following in your gn args?


use_errorprone_java_compiler = true
arm_use_neon = false
target_os = "android"
enable_websockets = false
disable_file_support = true
disable_ftp_support = true
disable_brotli_filter = false
use_platform_icu_alternatives = true
enable_reporting = false
is_component_build = false
ignore_elf32_limitations = true
use_partition_alloc = false
include_transport_security_state_preload_list = false
Yep, those are my gn args exactly. This is what I'm doing:

src$ ninja -C ./out/Debug -t clean
ninja: error: remove(cronet/test/assets): Directory not empty
Cleaning... 2586 files.
src$ rm -r ./out/Debug/cronet/test/assets
src$ ./components/cronet/tools/cr_cronet.py gn
Namespace(asan=False, command='gn', gn=False, iphoneos=False, out_dir=None, release=False)
[]
gn gen out/Debug --args='use_errorprone_java_compiler=true arm_use_neon=false target_os="android" enable_websockets=false disable_file_support=true disable_ftp_support=true disable_brotli_filter=false use_platform_icu_alternatives=true enable_reporting=false is_component_build=false ignore_elf32_limitations=true use_partition_alloc=false include_transport_security_state_preload_list=false'  
Done. Made 17626 targets from 1257 files in 7316ms
src$ ninja -C out/Debug cronet_package
ninja: Entering directory `out/Debug'
[1859/6318] ACTION //components/cronet...d/toolchain/android:android_clang_arm)
FAILED: gen/components/cronet/android/enforce_no_neon.stamp 
python ../../components/cronet/tools/check_no_neon.py ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-objdump obj/base/base/\*.o --stamp gen/components/cronet/android/enforce_no_neon.stamp
[1892/6318] CXX obj/v8/v8_base/instruction-selector.o
ninja: build stopped: subcommand failed.

Have you ever build an Android build on your workstation? I wonder whether that's due to a missing dependency.

https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md

(in the directory above src):
echo "target_os = [ 'android' ]" >> ../.gclient
gclient sync
build/install-build-deps-android.sh
gclient runhooks

Sign in to add a comment