New issue
Advanced search Search tips

Issue 809193 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

16KB regression in resource_sizes (MonochromePublic.apk) at 534462:534462

Project Member Reported by mheikal@google.com, Feb 5 2018

Issue description

Caused by “Make FileVideoCaptureDevice implement ImageCapture API”

Commit: 81c92b46714dc2433fd149897a4593036096de10

Link to size graph: https://chromeperf.appspot.com/report?sid=a097e74b1aa288511afb4cb616efe0f95ba4d347ad61d5e835072f23450938ba&num_points=10&rev=534462

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: 16kb of native code.

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

Close as “Won't Fix” with a short justification, or
Land a revert / fix-up.
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=809193

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


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

Android Builder
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=63942025
    elf_build_id=858be582de158cad1fb68f6559c5606f9d9016d8
    elf_mtime=2018-02-05 15:11:53
    git_revision=0338da53dbfa4753a973ce424128d513871144b5
New Metadata:
    apk_size=63958565
    elf_build_id=844095a99ebf5001ed189fd6a685a279dfde80cd
    elf_mtime=2018-02-05 15:14:53
    git_revision=81c92b46714dc2433fd149897a4593036096de10

Section Sizes (Total=16.2kb (16540 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%)
    .other: 2.31kb (2368 bytes) (14.3%)
    .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: 256 bytes (256 bytes) (1.5%)
    .text: 13.4kb (13760 bytes) (83.2%)

108 symbols added (+), 8 changed (~), 0 removed (-), 693599 unchanged (not shown)
Of changed symbols, 114 grew, 2 shrank
Number of unique symbols 509718 -> 509798 (+80)
3 paths added, 0 removed, 3 changed

Showing 116 symbols (10 -> 114 unique) with total pss: 16383 bytes
Histogram of symbols based on PSS:
    (-256,-128]: 1   [1,2): 9     [8,16): 2     [64,128): 11    [512,1024): 1
        (-2,-1]: 1   [2,4): 15   [16,32): 11   [128,256): 40   [1024,2048): 1
          (0,1): 3   [4,8): 1    [32,64): 11   [256,512): 8    [2048,4096): 1
.text=13.4kb     .rodata=256 bytes  .data.rel.ro=0 bytes    .data=0 bytes    .bss=0 bytes    .pak.translations=0 bytes    .pak.nontranslated=0 bytes    .other=2.31kb     total=16.0kb
Number of unique paths: 16

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)       2368 (14.4%) o@0x0        2368 (9315->11683) {{no path}}
               ELF file overhead
+ 1)       4202 (25.5%) t@0x18f3b70  1834 (0->1834)     third_party/libyuv/source/convert_to_argb.cc
               ConvertToARGB
~ 2)       4826 (29.3%) t@Group      624 (337268->337892) {{no path}}
               ** lld merge strings (count=2)
+ 3)       5336 (32.4%) t@0x18f3880  510 (0->508)       third_party/libyuv/source/convert_jpeg.cc
               MJPGToARGB
+ 4)       5746 (34.9%) t@0x18fdc10  410 (0->410)       third_party/libyuv/source/row_common.cc
               ARGBShuffleRow_C
+ 5)       6112 (37.1%) t@0x18f91ec  366 (0->366)       third_party/libyuv/source/row_common.cc
               ARGB1555ToARGBRow_C
+ 6)       6474 (39.3%) t@0x18f9082  362 (0->362)       third_party/libyuv/source/row_common.cc
               RGB565ToARGBRow_C
+ 7)       6758 (41.1%) t@0x18f5fb0  284 (0->284)       third_party/libyuv/source/rotate_argb.cc
               ARGBRotate180
+ 8)       7042 (42.8%) t@0xe897d4   284 (0->284)       media/capture/mojo/image_capture_types.cc
               mojo::CreateEmptyPhotoState
+ 9)       7318 (44.5%) t@0xe8662c   276 (0->276)       media/capture/video/blob_utils.cc
               media::Blobify
+ 10)      7578 (46.0%) t@0x18f23b4  260 (0->260)       third_party/libyuv/source/convert_argb.cc
               M420ToARGB
~ 11)      7326 (44.5%) t@0x1020688  -252 (412->160)    content/browser/image_capture/image_capture_impl.cc
               content::ImageCaptureImpl::GetPhotoState
+ 12)      7558 (45.9%) t@0x18f6e08  232 (0->232)       third_party/libyuv/source/row_any.cc
               NV12ToARGBRow_Any_NEON
+ 13)      7790 (47.3%) t@0x18f6ef0  232 (0->232)       third_party/libyuv/source/row_any.cc
               NV21ToARGBRow_Any_NEON
+ 14)      8018 (48.7%) t@0x18f21c0  228 (0->228)       third_party/libyuv/source/convert_argb.cc
               libyuv::NV12ToARGBMatrix
+ 15)      8246 (50.1%) t@0x18f22d0  228 (0->228)       third_party/libyuv/source/convert_argb.cc
               libyuv::NV21ToARGBMatrix
+ 16)      8454 (51.4%) t@0x18fccee  208 (0->208)       third_party/libyuv/source/row_common.cc
               I400ToARGBRow_C
+ 17)      8662 (52.6%) t@0x18f8188  208 (0->208)       third_party/libyuv/source/row_any.cc
               UYVYToARGBRow_Any_NEON
+ 18)      8870 (53.9%) t@0x18f80b8  208 (0->208)       third_party/libyuv/source/row_any.cc
               YUY2ToARGBRow_Any_NEON
+ 19)      9074 (55.1%) t@0x18f2584  204 (0->204)       third_party/libyuv/source/convert_argb.cc
               UYVYToARGB
+ 20)      9278 (56.4%) t@0x18f24b8  204 (0->204)       third_party/libyuv/source/convert_argb.cc
               YUY2ToARGB
+ 21)      9480 (57.6%) t@0x18f935a  202 (0->202)       third_party/libyuv/source/row_common.cc
               ARGB4444ToARGBRow_C
+ 22)      9676 (58.8%) t@0x18f7bfc  196 (0->196)       third_party/libyuv/source/row_any.cc
               ARGB1555ToARGBRow_Any_NEON
+ 23)      9872 (60.0%) t@0x18f7cc0  196 (0->196)       third_party/libyuv/source/row_any.cc
               ARGB4444ToARGBRow_Any_NEON
+ 24)     10068 (61.2%) t@0x18f7a74  196 (0->196)       third_party/libyuv/source/row_any.cc
               RAWToARGBRow_Any_NEON
+ 25)     10264 (62.4%) t@0x18f79b0  196 (0->196)       third_party/libyuv/source/row_any.cc
               RGB24ToARGBRow_Any_NEON
+ 26)     10460 (63.5%) t@0x18f7b38  196 (0->196)       third_party/libyuv/source/row_any.cc
               RGB565ToARGBRow_Any_NEON
+ 27)     10652 (64.7%) t@0x18f5638  192 (0->192)       third_party/libyuv/source/planar_functions.cc

I 113584 Creating: Resource Sizes Diff

******************************Resource Sizes Diff******************************
MonochromePublic.apk_Breakdown (+16,540 bytes)
        +1 bytes Zip Overhead
   +16,540 bytes Native code size
        -1 bytes Package metadata size
MonochromePublic.apk_Specifics
   +16,540 bytes normalized apk size
   +16,540 bytes main lib size

I 113587 See detailed diff results here: out/binary-size-results/diffs/0338da53dbfa4753a973ce424128d513871144b5..81c92b46714dc2433fd149897a4593036096de10/diff_results.txt

Diff Summary
    +16540 bytes MonochromePublic.apk_Specifics normalized apk size for range: 0338da53dbfa4753a973ce424128d513871144b5..81c92b46714dc2433fd149897a4593036096de10
I 113588 Enter supersize console via: tools/binary_size/supersize console out/binary-size-results/0338da53dbfa4753a973ce424128d513871144b5/MonochromePublic.apk.size out/binary-size-results/81c92b46714dc2433fd149897a4593036096de10/MonochromePublic.apk.size

Cc: mcasas@chromium.org
Looks like this is due to libyuv code being pulled in for converting MJPEG to ARGB. Not sure if there is any way around this if we want image capture to work on file-backed fake devices on Android.

alaoui.rda@: You initially reported this feature as missing on Linux. How important is it to you to have this work on all platforms including Android?

mheikal@: If necessary, we could consider adding an OS Switch in the code to turn off the newly added functionality on Android. I am unable to tell how "bad" an increase of 16kB is, so it is hard for me to weigh the upsides vs. downsides.
In terms of 'how bad is 16kb'. It's actually the smallest change that we alert on. Worth having a look at, but not worth spending more than a day on.
re #3:

I had to add |blob_utils.h| and |blob_utils.cc| import to every platform [1] including android otherwise the android bots were failing [2][3].

[1] https://chromium-review.googlesource.com/c/chromium/src/+/890739/16..17
[2] https://chromium-review.googlesource.com/c/chromium/src/+/890739/14..16
[3] https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/353768
And blob_utils requires libyuv
Status: WontFix (was: Assigned)
Makes sense. With that, I would say the increase in size is expected due to the newly added functionality and mark this as WontFix.

Sign in to add a comment