Enable --compile-zinc-use-classpath-jars by default #4525

Merged
merged 4 commits into from Apr 29, 2017

Conversation

Projects
None yet
3 participants
@stuhood
Member

stuhood commented Apr 27, 2017

Problem

According to Twitter's internal benchmark suite, the --compile-zinc-use-classpath-jars (ie: "use zjars") option used to effectively disable incremental compile by causing entire classpath entries to be invalidated.

But it looks like the zinc 1.0.0-X upgrade (in November, approximately) removed this limitation: zinc now correctly tracks changes in classpath jars, without fully invalidating downstream targets.

Solution

Enable --compile-zinc-use-classpath-jars by default, and deprecate the option.

Result

JVM compiles should be 20%-40% faster on rotational drives (anecdotally, the impact is less pronounced on SSDs). Additionally, further improvements might be possible now that loose classfiles only need to be present during a compile (see #4524).

@kwlzn

kwlzn approved these changes Apr 27, 2017

lgtm!

@stuhood stuhood merged commit 94775d9 into pantsbuild:master Apr 29, 2017

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@stuhood stuhood deleted the twitter:stuhood/zjars-by-default branch Apr 29, 2017

thesamet added a commit to thesamet/pants that referenced this pull request May 9, 2017

Enable --compile-zinc-use-classpath-jars by default (#4525)
### Problem

According to Twitter's internal benchmark suite, the `--compile-zinc-use-classpath-jars` (ie: "use zjars") option used to effectively disable incremental compile by causing entire classpath entries to be invalidated.

But it looks like the `zinc` `1.0.0-X` upgrade (in November, approximately) removed this limitation: zinc now correctly tracks changes in classpath jars, without fully invalidating downstream targets.

### Solution

Enable `--compile-zinc-use-classpath-jars` by default, and deprecate the option.

### Result

JVM compiles should be 20%-40% faster on rotational drives (anecdotally, the impact is less pronounced on SSDs). Additionally, further improvements might be possible now that loose classfiles only need to be present _during_ a compile (see #4524).

baroquebobcat added a commit to baroquebobcat/pants that referenced this pull request May 18, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment