1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 23:34:47 -05:00

Improve build performance by using jumbo build

The Jumbo build is the Chromium implementation of a Unity build system
aimed at dramatically lowering the compilation times. It can be easily
enabled with `use_jumbo_build=true`.

When you enable this, the biggest problem is that name conflicts can
occur between multiple c++ files merged, which is no problem for `deno`.
Because the V8's Jumbo build is managed in upstream, and `deno` will
just pick up a stable build V8.

So, this patch enables Jumbo build by default. After this patch, the
total number of build objects are halved. (1014 -> 493)

FYI, the following results are tested in my local environment.
 - IMAC 5K, i5 4-cores, 24GB, 512GB SSD

Test result1: No use ccache
|   |Jumbo build without ccache|Normal build without ccache|
|---|--------------------------|---------------------------|
| 1 |         0:05:26          |          0:11:31          |
| 2 |         0:05:24          |          0:11:29          |
| 3 |         0:05:25          |          0:11:28          |
| 4 |         0:05:24          |          0:11:29          |
| 5 |         0:05:26          |          0:11:29          |
|AVG|         0:05:25          |          0:11:29          |

Test result2: Use ccache
|   |Jumbo build with ccache|Normal build with ccache|
|---|-----------------------|------------------------|
| 1 |        0:01:38        |        0:01:13         |
| 2 |        0:01:45        |        0:01:21         |
| 3 |        0:01:39        |        0:02:20         |
| 4 |        0:01:45        |        0:02:16         |
| 5 |        0:01:42        |        0:02:19         |
| 6 |        0:01:17        |        0:01:11         |
| 7 |        0:01:01        |        0:01:48         |
| 8 |        0:00:54        |        0:01:57         |
| 9 |        0:01:03        |        0:02:15         |
|10 |        0:01:36        |        0:02:19         |
|AVG|        0:01:26        |        0:01:54         |

Refs: https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
This commit is contained in:
Jinho Bang 2018-10-14 21:59:49 +09:00 committed by Ryan Dahl
parent 15590a0cde
commit dc8841d8a9

4
.gn
View file

@ -32,6 +32,10 @@ default_args = {
treat_warnings_as_errors = false
rust_treat_warnings_as_errors = true
# Enable Jumbo build by default
# https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
use_jumbo_build = true
# https://cs.chromium.org/chromium/src/docs/ccache_mac.md
clang_use_chrome_plugins = false