Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Issue 11420019: mac: In component builds, put all chrome code in a nonbundle dylib. 25% faster incremental builds. (Closed)

Created:
8 years, 1 month ago by Nico
Modified:
8 years, 1 month ago
Reviewers:
Mark Mentovai
CC:
chromium-reviews, Ami GONE FROM CHROMIUM
Visibility:
Public.

Description

mac: In component builds, put all chrome code in a nonbundle dylib. 25% faster incremental builds. In a components build, make chrome_dll a very thin shim that includes all the bundle resources but no code, give it type shared_library/bundle (currently it's type none) and make it -reexport_library chrome_main_dll. Also move all postbuilds to this target. (To make this maintainable, all the bundle stuff was moved to a separate gypi file previously that's now just included in a different place.) Keep all sources in chrome_main_dll, but turn it from a bundle into a regular shared library. With this, gyp's ld optimization becomes active for chrome_mail_dll, which means all the bundle stuff (most notably postbuilds) don't need to run after touching a file below chrome/. Touching file in c/b/ui and rebuilding: 7.7s -> 5.8s (download_show_all_cell.mm, SSD), or 8.3s -> 6.4s (omnibox_popup_view_mac.mm, SSD) 19.7s -> 16.7s (hover_button.mm, HDD) From 0. ninja figures out deps (0.7s) 1. compile changed file (~1s) 2. libtool libchrome_browser_ui.a (~2s) 3. touch obj/chrome/chrome_main_dll.actions_depends.stamp 4. ld Chromium Framework (~2s) 5. package-framework Chromium Framework 6. ld libplugin_carbon_interpose.dylib 7. ld Chromium Helper 8. change_mach_o_flags_from_xcode.sh for Chromium Helper 9. touch obj/chrome/chrome.actions_depends.stamp 10. ln libplugin_carbon_interpose.dylib to Contents/Versions/... 11. same for Chromium Framework 12. touch obj/chrome/chrome.actions_rules_copies.stamp 13. ld Chromium main executable 14. Main executable postbuilds (tweak_info_plist.py, make_more_helpers, ...) to 0. ninja figures out deps (0.7s) 1. compile changed file (~1s) 2. libtool libchrome_browser_ui.a (~2s) 3. ld libchrome_main_dll.dylib (~2s) Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=168314

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+15 lines, -1 line) Patch
M chrome/chrome_dll.gypi View 1 2 chunks +15 lines, -1 line 0 comments Download

Messages

Total messages: 14 (0 generated)
Nico
8 years, 1 month ago (2012-11-15 23:39:54 UTC) #1
Mark Mentovai
What does this mean? What’s “gyp’s ld optimization?” With this, gyp's ld optimization becomes active ...
8 years, 1 month ago (2012-11-16 02:22:59 UTC) #2
Nico
On Thu, Nov 15, 2012 at 6:22 PM, Mark Mentovai <mark@chromium.org> wrote: > What does ...
8 years, 1 month ago (2012-11-16 02:31:08 UTC) #3
Mark Mentovai
OK. I wanted to make sure, because that shouldn’t actually be interfering with postbuilds. Postbuilds ...
8 years, 1 month ago (2012-11-16 02:35:34 UTC) #4
Nico
On Thu, Nov 15, 2012 at 6:35 PM, Mark Mentovai <mark@chromium.org> wrote: > OK. I ...
8 years, 1 month ago (2012-11-16 02:42:44 UTC) #5
Mark Mentovai
ninja and make are wrong, then. They are especially wrong in light of the ld ...
8 years, 1 month ago (2012-11-16 03:10:35 UTC) #6
Nico
I disagree. I'm not sure if that's relevant for this cl though. On Nov 15, ...
8 years, 1 month ago (2012-11-16 03:20:06 UTC) #7
Mark Mentovai
Well, the way you say ninja and make work, nobody’s Info.plist would ever be rebuilt ...
8 years, 1 month ago (2012-11-16 03:36:39 UTC) #8
Nico
On 2012/11/16 03:36:39, Mark Mentovai wrote: > Well, the way you say ninja and make ...
8 years, 1 month ago (2012-11-16 17:40:14 UTC) #9
Mark Mentovai
The reason that it’s related to this CL: Since postbuilds behave as you say in ...
8 years, 1 month ago (2012-11-16 17:47:50 UTC) #10
Nico
On Fri, Nov 16, 2012 at 9:47 AM, Mark Mentovai <mark@chromium.org> wrote: > The reason ...
8 years, 1 month ago (2012-11-16 17:59:01 UTC) #11
Mark Mentovai
The Info.plist tweaker is sensitive to changes that may not be expressed in built-up binaries ...
8 years, 1 month ago (2012-11-16 19:32:12 UTC) #12
Mark Mentovai
That comment was meant for the bug, not this review.
8 years, 1 month ago (2012-11-16 19:32:41 UTC) #13
Mark Mentovai
8 years, 1 month ago (2012-11-16 22:35:31 UTC) #14
LGTM as not blocked by 161488 following discussion on that bug.

Powered by Google App Engine
This is Rietveld 408576698