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

Issue 10918242: Update ninja to v1.0.0 on Mac and Linux. (Closed)

Created:
8 years, 3 months ago by Nico
Modified:
8 years, 3 months ago
Reviewers:
scottmg
CC:
chromium-reviews
Visibility:
Public.

Description

Update ninja to v1.0.0 on Mac and Linux. On both mac and linux, I ran: git checkout v1.0.0 ninja ./ninja ninja_test ./ninja_test # all passed strip ninja Changes since the last push: * NINJA_STATUS can now print rates via the o and c format chars * The version switch is now --version, -V no longer works * -t list now works without a build.ninja * Old .ninja_log files now trigger a rebuild instead of an error * Missing .d files make the corresponding .o file dirty * Allow @ and = in paths in depfiles * Ninja's output is now lower-case ("error:" instead of "ERROR:" etc) * Lots of Windows features (which doesn't affect Mac and Linux) On Linux, I switched from gcc4.4.3 to clang r163126. The clang-built binary is 125856 bytes (compared to 129944 bytes previously), and it does an empty 'chrome' build about 70ms faster (0.94s instead of 1.01s). The speed difference is almost completely in faster depfile parsing: clang-built (0.943s): $ time ../../ninja/ninja -C out/Release chrome -d stats ninja: Entering directory `out/Release' ninja: no work to do. metric count avg (us) total (ms) .ninja parse 716 507.8 363.6 canonicalize str 113486 0.2 27.7 canonicalize path 1305641 0.1 184.1 lookup node 1305641 0.2 200.9 .ninja_log load 1 11144.0 11.1 node stat 37828 2.6 98.0 depfile load 9266 80.9 749.3 path->node hash load 0.98 (48241 entries / 49157 buckets) real 0m1.162s user 0m0.980s sys 0m0.170s gcc-built (1.013s): $ time ninja -C out/Release chrome -d stats ninja: Entering directory `out/Release' ninja: no work to do. metric count avg (us) total (ms) .ninja parse 716 516.4 369.7 canonicalize str 113486 0.2 27.6 canonicalize path 1305641 0.1 181.0 lookup node 1305641 0.2 260.0 .ninja_log load 1 11012.0 11.0 node stat 37828 2.6 98.2 depfile load 9266 86.3 799.3 path->node hash load 0.98 (48241 entries / 49157 buckets) real 0m1.220s user 0m0.970s sys 0m0.240s On Mac, I alsow used clang r163126. The binary size stayed at 125104 bytes, performance didn't change. An empty build of chrome takes 1.26s. While node stat is a bit slower, and there are more defiles to parse compared to linux, most of the time difference is in slower .ninja parsing: mac (1.263s): $ time ../../ninja/ninja -C out/Release/ chrome -d stats ninja: Entering directory `out/Release/' ninja: no work to do. metric count avg (us) total (ms) .ninja parse 687 823.4 565.7 canonicalize str 115002 0.3 31.1 canonicalize path 1120853 0.2 175.6 lookup node 1120853 0.2 202.9 .ninja_log load 1 54126.0 54.1 node stat 38860 4.1 160.4 depfile load 9649 86.1 830.8 path->node hash load 0.99 (48522 entries / 49157 buckets) real 0m1.478s user 0m1.121s sys 0m0.351s TBR=scottmg Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=156751

Patch Set 1 #

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+0 lines, -0 lines) Patch
M depot_tools/ninja-linux64 View Binary file 0 comments Download
M depot_tools/ninja-mac View Binary file 0 comments Download

Messages

Total messages: 2 (0 generated)
Nico
8 years, 3 months ago (2012-09-14 05:50:44 UTC) #1
scottmg
8 years, 3 months ago (2012-09-14 15:34:18 UTC) #2
lgtm

(hopefully we can switch win early next week)

Powered by Google App Engine
This is Rietveld 408576698