|
|
Descriptionbindings: Generate all interfaces in a single action on mac
Spawning a python process per IDL file is heavy on mac. Use a single action to
generate bindings for all interface types on mac. On my mac pro, this CL makes
code generation 2x faster:
* w/ CL
$ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces
ninja: Entering directory `out/gn-single'
[30/30] STAMP obj/third_party/WebKit/Source/bindings/core/v8/generate_bindings_core_v8_interfaces.stamp
15.19 real 25.17 user 2.21 sys
* w/o CL
$ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces
ninja: Entering directory `out/gn-single'
[1026/1026] STAMP obj/third_party/WebKit/Source/binding...odules/v8/generate_bindings_modules_v8_interfaces.stamp
34.48 real 241.44 user 99.08 sys
We still use `action_foreach` for other platforms as using a single action slows
down builds a bit.
BUG=695864
Review-Url: https://codereview.chromium.org/2726103005
Cr-Commit-Position: refs/heads/master@{#454557}
Committed: https://chromium.googlesource.com/chromium/src/+/4482e5a9b79b7ae945360471e13546503d11a15d
Patch Set 1 #Patch Set 2 : Tweak #Patch Set 3 : Use a single action for mac #
Total comments: 10
Patch Set 4 : add todo #Patch Set 5 : comment #
Messages
Total messages: 25 (13 generated)
The CQ bit was checked by bashi@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by bashi@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== WIP: Generate bindings for interfaces in a single action BUG=695864 ========== to ========== bindings: Generate all interfaces in a single action on mac Spawning a python process per IDL file is heavy on mac. Use a single action to generate bindings for all interface types on mac. On my mac pro, this CL makes code generation 2x faster: * w/ CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [30/30] STAMP obj/third_party/WebKit/Source/bindings/core/v8/generate_bindings_core_v8_interfaces.stamp 15.19 real 25.17 user 2.21 sys * w/o CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [1026/1026] STAMP obj/third_party/WebKit/Source/binding...odules/v8/generate_bindings_modules_v8_interfaces.stamp 34.48 real 241.44 user 99.08 sys We still use `action_foreach` for other platforms as using a single action slows down builds a bit. BUG=695864 ==========
bashi@chromium.org changed reviewers: + haraken@chromium.org, peria@chromium.org, shinyak@chromium.org, tikuta@chromium.org
PTAL
lgtm https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/scripts.gni (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:187: if (is_mac) { Could you add comment about using pool if following issue is fixed? https://bugs.chromium.org/p/chromium/issues/detail?id=635308
The CQ bit was checked by bashi@chromium.org to run a CQ dry run
https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/scripts.gni (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:187: if (is_mac) { On 2017/03/03 06:40:53, tikuta wrote: > Could you add comment about using pool if following issue is fixed? > https://bugs.chromium.org/p/chromium/issues/detail?id=635308 Done.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm
yukishiino@chromium.org changed reviewers: + yukishiino@chromium.org
rs LGTM.
https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/idl_compiler.py (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/idl_compiler.py:58: parser.add_option('--read-idl-list-from-file', (optional) '....-list' is consistent with other generators. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/scripts.gni (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:145: # TODO(brettw) GYP adds a "-S before the script name to skip "import site" to This TODO comment mentions on GYP, and we no longer use it. So let's drop or update this TODO. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:198: "$output_dir/V8$_name_part$output_name_suffix.cpp", Use "V8${_name_part}${output_name_suffix}.cpp" style. It is difficult to see where are plain text or variable names. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:228: "$output_dir/V8{{source_name_part}}${output_name_suffix}.cpp", Be consistent with #198-199.
https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/idl_compiler.py (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/idl_compiler.py:58: parser.add_option('--read-idl-list-from-file', On 2017/03/03 07:45:07, peria wrote: > (optional) '....-list' is consistent with other generators. Yeah, but I thought it's a bit redundant. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/scripts/scripts.gni (right): https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:145: # TODO(brettw) GYP adds a "-S before the script name to skip "import site" to On 2017/03/03 07:45:07, peria wrote: > This TODO comment mentions on GYP, and we no longer use it. > So let's drop or update this TODO. Done. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:198: "$output_dir/V8$_name_part$output_name_suffix.cpp", On 2017/03/03 07:45:07, peria wrote: > Use "V8${_name_part}${output_name_suffix}.cpp" style. > It is difficult to see where are plain text or variable names. Done. https://codereview.chromium.org/2726103005/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/scripts/scripts.gni:228: "$output_dir/V8{{source_name_part}}${output_name_suffix}.cpp", On 2017/03/03 07:45:07, peria wrote: > Be consistent with #198-199. Done.
LGTM
We might want to use a single action for all platforms, but let me submit this for now.
The CQ bit was checked by bashi@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from tikuta@chromium.org, yukishiino@chromium.org Link to the patchset: https://codereview.chromium.org/2726103005/#ps80001 (title: "comment")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 80001, "attempt_start_ts": 1488528496870390, "parent_rev": "83c9185edb57a156c2c52270448dacef9d0b7cc1", "commit_rev": "4482e5a9b79b7ae945360471e13546503d11a15d"}
Message was sent while issue was closed.
Description was changed from ========== bindings: Generate all interfaces in a single action on mac Spawning a python process per IDL file is heavy on mac. Use a single action to generate bindings for all interface types on mac. On my mac pro, this CL makes code generation 2x faster: * w/ CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [30/30] STAMP obj/third_party/WebKit/Source/bindings/core/v8/generate_bindings_core_v8_interfaces.stamp 15.19 real 25.17 user 2.21 sys * w/o CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [1026/1026] STAMP obj/third_party/WebKit/Source/binding...odules/v8/generate_bindings_modules_v8_interfaces.stamp 34.48 real 241.44 user 99.08 sys We still use `action_foreach` for other platforms as using a single action slows down builds a bit. BUG=695864 ========== to ========== bindings: Generate all interfaces in a single action on mac Spawning a python process per IDL file is heavy on mac. Use a single action to generate bindings for all interface types on mac. On my mac pro, this CL makes code generation 2x faster: * w/ CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [30/30] STAMP obj/third_party/WebKit/Source/bindings/core/v8/generate_bindings_core_v8_interfaces.stamp 15.19 real 25.17 user 2.21 sys * w/o CL $ time ninja -C out/gn-single -j 200 generate_bindings_modules_v8_interfaces generate_bindings_core_v8_interfaces ninja: Entering directory `out/gn-single' [1026/1026] STAMP obj/third_party/WebKit/Source/binding...odules/v8/generate_bindings_modules_v8_interfaces.stamp 34.48 real 241.44 user 99.08 sys We still use `action_foreach` for other platforms as using a single action slows down builds a bit. BUG=695864 Review-Url: https://codereview.chromium.org/2726103005 Cr-Commit-Position: refs/heads/master@{#454557} Committed: https://chromium.googlesource.com/chromium/src/+/4482e5a9b79b7ae945360471e135... ==========
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as https://chromium.googlesource.com/chromium/src/+/4482e5a9b79b7ae945360471e135...
Message was sent while issue was closed.
LGTM |