Issue metadata
Sign in to add a comment
|
82.6 KiB regression in resource_sizes (MonochromePublic.apk) at 540928:540928 |
||||||||||||||||||||||
Issue descriptionCaused by “Statically allocate built-in function symbols” from angle-chromium-autoroll Commit: f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661 Link to size graph: https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICQkvX4vwoM 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: 82 KiB of native code. The commit points to a 4-CL Angle roll, but the most likely cause is https://chromium-review.googlesource.com/c/angle/angle/+/924155 which contains a 13,140-line auto-generated file. It looks like this increase was probably unexpected or might be avoidable. Please have a look and either: 1. Close as “Won't Fix” with a short justification, or 2. Land a revert / fix-up.
,
Mar 5 2018
Assigning to angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com because this is the only CL in range: Roll src/third_party/angle/ 78e39b3fd..f0e89be69 (4 commits) https://chromium.googlesource.com/angle/angle.git/+log/78e39b3fd675..f0e89be69906 $ git log 78e39b3fd..f0e89be69 --date=short --no-merges --format='%ad %ae %s' 2017-11-08 cwallez Use packed enums for the texture types and targets, part 1 2018-02-08 oetuaho Statically allocate built-in function symbols 2018-03-05 oetuaho Last case in switch statement can't be empty in ESSL 3.10 2018-02-28 jmadill Vulkan: Fix Texture attachment state changes. Created with: roll-dep src/third_party/angle The AutoRoll server is located here: https://angle-chromium-roll.skia.org Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel TBR=ynovikov@chromium.org Change-Id: I2b7bfee876909857d925aaf205198b57a20e5b36 Reviewed-on: https://chromium-review.googlesource.com/949662 Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#540928}
,
Mar 5 2018
To see break-down, run: tools/binary_size/diagnose_bloat.py --cloud f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661 Results: ******************************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/cache/goma_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 map_file_name=lib.unstripped/libmonochrome.so.map.gz tool_prefix=third_party/llvm-build/Release+Asserts/bin/llvm- Old Metadata: apk_size=64241048 elf_build_id=09ee1e751f8f50f44371aebf4cae19ef4eff5fc3 elf_mtime=2018-03-05 16:19:56 git_revision=034c0d5832302cb22ddcc037494478090013b198 New Metadata: apk_size=64325588 elf_build_id=ffcd0de69fdc4df13fc522c0cba974a7b691cfb4 elf_mtime=2018-03-05 16:30:58 git_revision=f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661 Section Sizes (Total=82.6kb (84540 bytes)): .bss: 0 bytes (0 bytes) (not included in totals) .data: 43.4kb (44416 bytes) (52.5%) .data.rel.ro: 14.5kb (14896 bytes) (17.6%) .other: 3.14kb (3214 bytes) (3.8%) .pak.nontranslated: 0 bytes (0 bytes) (0.0%) .pak.translations: 0 bytes (0 bytes) (0.0%) .rel.dyn: 6.52kb (6674 bytes) (7.9%) .rodata: 14.3kb (14688 bytes) (17.4%) .text: 640 bytes (640 bytes) (0.8%) 1831 symbols added (+), 161 changed (~), 86 removed (-), 661034 unchanged (not shown) Of changed symbols, 1938 grew, 140 shrank Number of unique symbols 498598 -> 500312 (+1714) 0 paths added, 1 removed, 9 changed Showing 2,078 symbols (232 -> 1,987 unique) with total pss: 74640 bytes Histogram of symbols based on PSS: (-16384,-8192]: 1 (-128,-64]: 26 (-8,-4]: 44 [1,2): 4 [16,32): 579 [2048,4096): 1 (-4096,-2048]: 1 (-64,-32]: 19 (-4,-2]: 14 [2,4): 16 [32,64): 304 [8192,16384): 1 (-1024,-512]: 1 (-32,-16]: 12 (-2,-1]: 11 [4,8): 36 [64,128): 408 (-256,-128]: 1 (-16,-8]: 10 (0,1): 3 [8,16): 585 [128,256): 1 .text=640 bytes .rodata=14.3kb .data.rel.ro=14.5kb .data=43.4kb .bss=0 bytes .pak.translations=0 bytes .pak.nontranslated=0 bytes .other=0 bytes total=72.9kb Number of unique paths: 12 Section Legend: t=.text, r=.rodata, R=.data.rel.ro, d=.data, b=.bss, p=.pak.translations, P=.pak.nontranslated, o=.other Index | Running Total | Section@Address | Δ PSS (Δ size_without_padding) | Path ------------------------------------------------------------ + 0) 11184 (15.0%) t@0x1ac613c 11184 (0->11184) third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp sh::TSymbolTable::insertBuiltInFunctions - 1) 1410 (1.9%) t@0x0 -9774 (9772->0) third_party/angle/src/compiler/translator/SymbolTable.cpp sh::TSymbolTable::initializeBuiltInFunctions + 2) 4154 (5.6%) t@0x1ac8cec 2744 (0->2744) third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp sh::TSymbolTable::insertBuiltInFunctionUnmangledNames - 3) 1876 (2.5%) t@0x0 -2278 (2276->0) third_party/angle/src/compiler/translator/SymbolTable.cpp sh::TSymbolTable::insertBuiltIn ... (SNIP) ... + 26) 3572 (4.8%) d@0x27b76e0 112 (0->112) third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp .L_MergedGlobals.1922 I 64750 Creating: Resource Sizes Diff ******************************Resource Sizes Diff****************************** MonochromePublic.apk_Breakdown (+84,540 bytes) +84,540 bytes Native code size MonochromePublic.apk_Specifics +84,540 bytes normalized apk size +84,540 bytes main lib size I 64753 See detailed diff results here: out/binary-size-results/diffs/034c0d5832302cb22ddcc037494478090013b198..f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661/diff_results.txt Diff Summary +84540 bytes MonochromePublic.apk_Specifics normalized apk size for range: 034c0d5832302cb22ddcc037494478090013b198..f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661 I 64753 Enter supersize console via: tools/binary_size/supersize console out/binary-size-results/034c0d5832302cb22ddcc037494478090013b198/MonochromePublic.apk.size out/binary-size-results/f42c6ef5cd00c8b9d47e01fd905ece3a4cd3f661/MonochromePublic.apk.size
,
Mar 12 2018
The code size increase was expected. It buys us vastly increased initialization performance - by our estimates ANGLE shader compiler now initializes in almost 50% less time as before. The code size increase is also compensated by a reduction in run-time memory use. Further work is also going to mitigate the code size increase. There are already patches in review that depend on having the autogenerated code, each shaving off a few kilobytes of code, and more are on the way. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Mar 5 2018