New issue
Advanced search Search tips

Issue 781027 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

32 kb regression in resource_sizes (MonochromePublic.apk) at 513401:513401

Project Member Reported by estevenson@chromium.org, Nov 2 2017

Issue description

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

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


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

Android Builder

Comment 2 Deleted

Cc: estevenson@chromium.org
Owner: kwiberg@chromium.org
Deleted c#1 since I must've messed something up and uploaded the wrong diff. Actual diff looks as expected:

Showing 263 symbols (aliases not grouped for diffs) with total pss: 29740 bytes
Histogram of symbols based on PSS:
    (-64,-32]: 1    (0,1): 9      [4,8): 12     [32,64): 35     [256,512): 16   [2048,4096): 1
      (-8,-4]: 1    [1,2): 14    [8,16): 21    [64,128): 34    [512,1024): 3
       (-1,0): 39   [2,4): 17   [16,32): 22   [128,256): 32   [1024,2048): 6
.text=22.8kb     .rodata=6.02kb     .data.rel.ro=208 bytes  .data=0 bytes    .bss=0 bytes    total=29.0kb
Number of unique paths: 120

Section Legend: t=.text, r=.rodata, R=.data.rel.ro, d=.data, b=.bss
Index | Running Total | Section@Address | Δ PSS (Δ size_without_padding) | Path
------------------------------------------------------------
+ 0)       2176 (7.2%)  r@0x2a02268  2176 (0->2176)     third_party/webrtc/modules/audio_coding/codecs/ilbc/constants.c
               WebRtcIlbcfix_kLsfCb
+ 1)       3944 (13.1%) t@0x14710d0  1768 (0->1768)     third_party/webrtc/modules/audio_coding/codecs/ilbc/cb_search.c
               WebRtcIlbcfix_CbSearch
+ 2)       5596 (18.6%) t@0x1472db0  1652 (0->1652)     third_party/webrtc/modules/audio_coding/codecs/ilbc/enhancer_interface.c
               WebRtcIlbcfix_EnhancerInterface
+ 3)       7128 (23.7%) t@0x147419e  1532 (0->1532)     third_party/webrtc/modules/audio_coding/codecs/ilbc/pack_bits.c
               WebRtcIlbcfix_PackBits
+ 4)       8484 (28.2%) t@0x1472694  1356 (0->1356)     third_party/webrtc/modules/audio_coding/codecs/ilbc/encode.c
               WebRtcIlbcfix_EncodeImpl
+ 5)       9812 (32.7%) t@0x14755ee  1328 (0->1328)     third_party/webrtc/modules/audio_coding/codecs/ilbc/unpack_bits.c
               WebRtcIlbcfix_UnpackBits
+ 6)      11068 (36.8%) t@0x14721ac  1256 (0->1256)     third_party/webrtc/modules/audio_coding/codecs/ilbc/do_plc.c
               WebRtcIlbcfix_DoThePlc
+ 7)      11932 (39.7%) t@0x1471aa0  864 (0->864)       third_party/webrtc/modules/audio_coding/codecs/ilbc/decode.c
               WebRtcIlbcfix_DecodeImpl
+ 8)      12648 (42.1%) t@0x1474f34  716 (0->716)       third_party/webrtc/modules/audio_coding/codecs/ilbc/smooth.c
               WebRtcIlbcfix_Smooth
+ 9)      13252 (44.1%) t@0x1471e00  604 (0->604)       third_party/webrtc/modules/audio_coding/codecs/ilbc/decode_residual.c
               WebRtcIlbcfix_DecodeResidual
+ 10)     13732 (45.7%) r@0x2a02030  480 (0->480)       third_party/webrtc/modules/audio_coding/codecs/ilbc/constants.c
               WebRtcIlbcfix_kLpcAsymWin
+ 11)     14212 (47.3%) r@0x2a01e50  480 (0->480)       third_party/webrtc/modules/audio_coding/codecs/ilbc/constants.c
               WebRtcIlbcfix_kLpcWin
+ 12)     14676 (48.8%) t@0x14747c4  464 (0->464)       third_party/webrtc/modules/audio_coding/codecs/ilbc/poly_to_lsp.c
               WebRtcIlbcfix_Poly2Lsp
+ 13)     15094 (50.2%) t@0x1475cbc  418 (0->416)       third_party/webrtc/modules/audio_coding/codecs/ilbc/xcorr_coef.c
               WebRtcIlbcfix_XcorrCoef
+ 14)     15510 (51.6%) t@0x1474994  416 (0->416)       third_party/webrtc/modules/audio_coding/codecs/ilbc/refiner.c
               WebRtcIlbcfix_Refiner
+ 15)     15926 (53.0%) t@0x1474b34  416 (0->416)       third_party/webrtc/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c
               WebRtcIlbcfix_SimpleInterpolateLsf
+ 16)     16314 (54.3%) t@0x1475454  388 (0->388)       third_party/webrtc/modules/audio_coding/codecs/ilbc/state_search.c
               WebRtcIlbcfix_StateSearch
+ 17)     16664 (55.5%) t@0x14737a4  350 (0->348)       third_party/webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.c
               WebRtcIlbcfix_GetSyncSeq
+ 18)     17000 (56.6%) t@0x147205c  336 (0->336)       third_party/webrtc/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c
               WebRtcIlbcfix_DecoderInterpolateLsp
+ 19)     17336 (57.7%) t@0x1475304  336 (0->336)       third_party/webrtc/modules/audio_coding/codecs/ilbc/state_construct.c
               WebRtcIlbcfix_StateConstruct
...

Due to this commit: eb254b40b33380fcec43028dd89f3f6bab3d08a7, "Don't select audio codecs depending on GN vars `build_with_{chromium|mozilla}`" 

It looks like this increase was probably unexpected or might be avoidable.
Please have a look and either:

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

Karl, can you take a look? Are there any unused codecs we can exclude from Chrome on Android?

diff_results.txt
795 KB View Download
Attached the wrong diff again.
diff_results.txt
49.3 KB View Download
Ah. Chromium does specify exactly what audio codecs it wants, but I haven't quite finished eliminating all the codec dependencies internal to WebRTC, which is why you pick up iLBC.

Setting the GN variable rtc_include_ilbc to false should take care of this until I've eliminated those deps. I'll see if I can figure out in what .gn file I should put that...

As for other unused codecs, once I've fixed those deps you'll be free to experiment by changing the codec list in content/renderer/media/webrtc/audio_codec_factory.cc.
Great, thanks for the quick fix!

If you want to check locally what the binary size decrease is you could run tools/binary_size/diagnose_bloat.py -v COMMIT.
After I'd installed all the Android build deps, that command chugged along for about an hour before failing uninformatively.

So instead, I verified manually that the size of the `chrome`
binary in my opt Linux build goes from 189060824 to 188985648 bytes---a
drop of 73.4 kB, which is about what we could expect.

The CL is waiting for you to review it now.
Status: Started (was: Assigned)
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 5 2017

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

commit f3b599b9922b753585ed5bc6be9fe40dbea60ad0
Author: Karl Wiberg <kwiberg@chromium.org>
Date: Sun Nov 05 21:35:00 2017

Build WebRTC without support for the iLBC audio codec

It got enabled by this WebRTC commit
[https://webrtc-review.googlesource.com/c/src/+/9401], and will go
away again when bugs.webrtc.org/8396 is fixed, but we don't want to
wait, so we explicitly ask WebRTC to build without iLBC support.

I verified manually that with this change, the size of the `chrome`
binary in my opt Linux build goes from 189060824 to 188985648 bytes---a
drop of 73.4 kB, which is just the sort of effect I was expecting.

BUG= chromium:781027 ,  webrtc:8396 

Change-Id: I08301a1b4ea5994fb02ebaeffc6ae67ce3ec0d50
Reviewed-on: https://chromium-review.googlesource.com/753486
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Karl Wiberg <kwiberg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514069}
[modify] https://crrev.com/f3b599b9922b753585ed5bc6be9fe40dbea60ad0/.gn

Status: Verified (was: Started)
Re #8: Any chance you've got the failure message hanging around still?

CL in #10 shaved 28 kb off of MonochromePublic.apk: https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgIDg15-2sQsM, thanks again for fixing.
No, sorry, my Chromoting session died, leading to total loss of terminal scrollback buffer...

Sign in to add a comment