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

Issue 737372 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Jun 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

0.2%-0.3% regression in sizes at 482773:482773

Project Member Reported by sullivan@chromium.org, Jun 28 2017

Issue description

See the link to graphs below.
 
Owner: roc...@chromium.org
rockot: looks like https://chromium-review.googlesource.com/546957 caused a ~200kib binary size regression. expected?

Comment 3 by roc...@chromium.org, Jun 28 2017

Expected yes, but I do have some follow-up work to bring it back down
significantly.

Comment 4 by roc...@chromium.org, Jun 28 2017

Status: Assigned (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 28 2017

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

commit 7ccd5748af65f98edbb5fbd44e60b7e61f8cec3f
Author: Ken Rockot <rockot@chromium.org>
Date: Wed Jun 28 12:49:01 2017

Mojo C++ Bindings: Move bits of InterfacePtrState out-of-line

BUG= 737372 

Change-Id: I84b735900c0f065d80b927868696688b46ca7caa
Reviewed-on: https://chromium-review.googlesource.com/551086
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482960}
[modify] https://crrev.com/7ccd5748af65f98edbb5fbd44e60b7e61f8cec3f/mojo/public/cpp/bindings/BUILD.gn
[add] https://crrev.com/7ccd5748af65f98edbb5fbd44e60b7e61f8cec3f/mojo/public/cpp/bindings/lib/interface_ptr_state.cc
[modify] https://crrev.com/7ccd5748af65f98edbb5fbd44e60b7e61f8cec3f/mojo/public/cpp/bindings/lib/interface_ptr_state.h

Comment 6 by roc...@chromium.org, Jun 29 2017

Cc: tdres...@chromium.org roc...@chromium.org
 Issue 737983  has been merged into this issue.

Comment 7 by roc...@chromium.org, Jun 29 2017

Cc: zpeng@chromium.org
 Issue 738201  has been merged into this issue.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 29 2017

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

commit 916a4ce665a069b167196957b1d38af1251f59a8
Author: Ken Rockot <rockot@chromium.org>
Date: Thu Jun 29 23:29:09 2017

Mojo C++ Bindings: Shave off some more code size

Makes all SerializationContext state private and adds out-of-line
helper methods to manipulate it.

Also adds a base AssociatedInterfacePtrState class to force shared
code across template instantiations for a minor enhancement.

Overall decrease of Android binary size is ~60 kB.

BUG= 737372 

Change-Id: I17f26bef075faad70357cf90239e0960935553b0
Reviewed-on: https://chromium-review.googlesource.com/553429
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483544}
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/array_serialization.h
[add] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/associated_interface_ptr_state.cc
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/associated_interface_ptr_state.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/handle_interface_serialization.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/map_serialization.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/serialization_context.cc
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/serialization_context.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/serialization_util.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/lib/string_serialization.h
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/cpp/bindings/tests/union_unittest.cc
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_declaration.tmpl
[modify] https://crrev.com/916a4ce665a069b167196957b1d38af1251f59a8/mojo/public/tools/bindings/generators/cpp_templates/union_serialization_declaration.tmpl

Comment 9 by roc...@chromium.org, Jun 30 2017

Status: Fixed (was: Assigned)
Between r482960 and r483544 (totaling a reduction of ~68k for Android binary)  the cost of the expected 80 kB increase is mostly paid down.

For other data, the Mac binary size increase was around 430k and these changes have reduced it by ~367k.

Calling this Fixed as I haven't found any other practical ways to cut down the code size further.

Sign in to add a comment