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