New issue
Advanced search Search tips

Issue 862156 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 10
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

19.1 KiB regression in resource_sizes (MonochromePublic.apk) at 573680:573680

Project Member Reported by huangs@google.com, Jul 10

Issue description

Caused by “[Unity][Android] Add Sync settings to SyncAndServicesPreferences”

Commit: a0498ea7ea98418187c2d9a2f79ae7b4ab6f4303

Link to size graph: https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICQpd_TogoM

Debugging size regressions is documented at: https://chromium.googlesource.com/chromium/src/+/master/docs/speed/apk_size_regressions.md#Debugging-Apk-Size-Increase

Based on the graph: 19.1 KiB of normalized APK size.
Based on diagnose_bloat: 6.5 KiB of APK size, 

It's not clear to me whether or not this increase was expected.
Please have a look and either:

1. Close as “Won't Fix” with a short justification, or
2. Land a revert / fix-up.

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

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


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

Android Builder Perf
Owner: bsazonov@chromium.org
Status: Assigned (was: Untriaged)
Assigning to bsazonov@chromium.org because this is the only CL in range:
[Unity][Android] Add Sync settings to SyncAndServicesPreferences

This CL adds Sync settings to SyncAndServicesPreferences. The most of
added code is identical to the one in SyncCustomizationFragment, the
only significant change is the removal of top-level sync toggle
(mIsSyncEnabled is used instead).

Bug: 856182
Change-Id: Ie004a7918760e665456b47a1d71a22ece57e1df2
Reviewed-on: https://chromium-review.googlesource.com/1120529
Reviewed-by: Theresa <twellington@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573680}
Note that "normalized APK size" extrapolates from actual size (to account for translated resources). 

Re. potential size reduction: The CL states "The most of
added code is identical to the one in SyncCustomizationFragment". So can some refactoring be applied to dedup code?

To see detailed info, please run:
tools/binary_size/diagnose_bloat.py --cloud a0498ea7ea98418187c2d9a2f79ae7b4ab6f4303

******************************Native Diff******************************
Common Metadata:
    apk_file_name=apks/MonochromePublic.apk
    elf_arch=arm
    elf_file_name=lib.unstripped/libmonochrome.so
    gn_args=ffmpeg_branding="Chrome" goma_dir="/b/build/slave/goma_cache/client" is_chrome_branded=true is_debug=false is_official_build=true proprietary_codecs=true strip_absolute_paths_from_debug_symbols=true symbol_level=1 target_os="android" use_goma=true
    linker_name=lld_v1
    map_file_name=lib.unstripped/libmonochrome.so.map.gz
    tool_prefix=third_party/llvm-build/Release+Asserts/bin/llvm-
Old Metadata:
    apk_size=68474083
    elf_build_id=c5c680d51ec3662ab66624e70070d6e4a3a886bb
    elf_mtime=2018-07-10 07:26:27
    git_revision=ddc19741205d28afde0b6a414d15c4ab13f61ac3
New Metadata:
    apk_size=68480698
    elf_build_id=57c3b7b21caab65393f16121ad14b84be1db9eeb
    elf_mtime=2018-07-10 07:31:57
    git_revision=a0498ea7ea98418187c2d9a2f79ae7b4ab6f4303

Section Sizes (Total=8.23kb (8431 bytes)):
    .bss: 0 bytes (0 bytes) (not included in totals)
    .data: 0 bytes (0 bytes) (0.0%)
    .data.rel.ro: 0 bytes (0 bytes) (0.0%)
    .dex: 5.09kb (5208 bytes) (61.8%)
    .other: 3.15kb (3223 bytes) (38.2%)
    .pak.nontranslated: 0 bytes (0 bytes) (0.0%)
    .pak.translations: 0 bytes (0 bytes) (0.0%)
    .rel.dyn: 0 bytes (0 bytes) (0.0%)
    .rodata: 0 bytes (0 bytes) (0.0%)
    .text: 0 bytes (0 bytes) (0.0%)

64 symbols added (+), 59 changed (~), 5 removed (-), 1002669 unchanged (not shown)
Of changed symbols, 101 grew, 27 shrank
Number of unique symbols 632235 -> 632294 (+59)
0 paths added, 0 removed, 26 changed

Showing 128 symbols (64 -> 123 unique) with total pss: 8431 bytes
Histogram of symbols based on PSS:
    (-512,-256]: 2   (-16,-8]: 2    [1,2): 25     [16,32): 6      [256,512): 7
     (-128,-64]: 4    (-8,-4]: 2    [2,4): 2      [32,64): 10    [512,1024): 2
      (-64,-32]: 4    (-4,-2]: 3    [4,8): 1     [64,128): 16   [2048,4096): 1
      (-32,-16]: 1    (-2,-1]: 9   [8,16): 23   [128,256): 8
.text=0 bytes    .rodata=0 bytes    .data.rel.ro=0 bytes    .data=0 bytes    .bss=0 bytes    .dex=-38 bytes  .dex.method=5.12kb     .pak.translations=0 bytes    .pak.nontranslated=0 bytes    .other=3.15kb     total=8.23kb
Number of unique paths: 31

Section Legend: t=.text, r=.rodata, R=.data.rel.ro, d=.data, b=.bss, x=.dex, m=.dex.method, p=.pak.translations, P=.pak.nontranslated, o=.other
Index | Running Total | Section@Address | Δ PSS (Δ size_without_padding) | Path
------------------------------------------------------------
~ 0)       2112 (25.1%) o@0x0        2112 (4641408->4643520) $APK/resources.arsc
               resources.arsc
+ 1)       2739 (32.5%) m@0x0        627 (0->627)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onPreferenceClick
+ 2)       3241 (38.4%) m@0x0        502 (0->502)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#updateSyncErrorCard
+ 3)       3722 (44.1%) m@0x0        481 (0->481)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#updateDataTypeState
~ 4)       3309 (39.2%) x@0x0        -413 (30185->29772) {no path}
               * Unattributed Dex
~ 5)       3717 (44.1%) o@0x0        408 (927->1335)    chrome/android/java/res/xml/sync_and_services_preferences.xml
               res/xml/sync_and_services_preferences.xml
~ 6)       4049 (48.0%) m@0x0        332 (583->915)     chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onCreate
+ 7)       4360 (51.7%) m@0x0        311 (0->311)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#updateSyncPreferences
- 8)       4068 (48.3%) m@0x0        -292 (292->0)      chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences$$Lambda$1#isPreferenceControlledByPolicy
+ 9)       4360 (51.7%) m@0x0        292 (0->292)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences$$Lambda$4#isPreferenceControlledByPolicy
+ 10)      4634 (55.0%) m@0x0        274 (0->274)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#getSelectedModelTypes
+ 11)      4856 (57.6%) m@0x0        222 (0->222)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#updateSyncStateFromSelectedModelTypes
~ 12)      5071 (60.1%) m@0x0        215 (407->622)     chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onPreferenceChange
+ 13)      5279 (62.6%) m@0x0        208 (0->208)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onPassphraseTypeSelected$20c4b7a1
+ 14)      5448 (64.6%) m@0x0        169 (0->169)       chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
               ProfileSyncService#setPreferredDataTypes
+ 15)      5609 (66.5%) m@0x0        161 (0->161)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onStop
+ 16)      5758 (68.3%) m@0x0        149 (0->149)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#syncStateChanged
+ 17)      5906 (70.1%) m@0x0        148 (0->148)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onPassphraseEntered
+ 18)      6046 (71.7%) m@0x0        140 (0->140)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#onStart
+ 19)      6169 (73.2%) m@0x0        123 (0->123)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
               SyncAndServicesPreferences#configureSyncDataTypes
+ 20)      6281 (74.5%) m@0x0        112 (0->112)       chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java

...

~ 124)     7724 (91.6%) o@0x0        +1 (334->335)      chrome/android/java/res/xml/contextual_suggestions_preferences.xml
               res/xml/contextual_suggestions_preferences.xml
~ 125)     7725 (91.6%) o@0x0        +1 (299->300)      chrome/android/java/res/xml/legal_information_preferences.xml
               res/xml/legal_information_preferences.xml
~ 126)     7726 (91.6%) o@0x0        +1 (721->722)      chrome/android/java/res/xml/sync_customization_preferences.xml
               res/xml/sync_customization_preferences.xml
~ 127)     8431 (100.0%) o@0x0        705 (0->0)         {{no path}}
               Overhead: APK file

******************************Resource Sizes Diff******************************
For an explanation of these metrics, see:
https://chromium.googlesource.com/chromium/src/+/master/docs/speed/binary_size/metrics.md#Metrics-for-Android

Specifics:
       +19,593 bytes normalized apk size
        +5,208 bytes main dex size
InstallSize:
        +6,615 bytes APK size
    +27,655.32 bytes Estimated installed size
InstallBreakdown (+26,950.32 bytes):
          +411 bytes Non-compiled Android resources size
            -5 bytes Package metadata size
    +24,432.32 bytes Java code size
        +2,112 bytes Compiled Android resources size
Dex:
           +21 entries fields
           +35 entries methods
            +3 entries types
            +3 entries strings

Status: WontFix (was: Assigned)
The code that got duplicated will be removed after UnifiedConsent feature is launched.

Sign in to add a comment