Too many java source files are recompiled when one changes.

Jonathan Gibbons jonathan.gibbons at oracle.com
Tue Apr 2 16:39:19 UTC 2013


On 04/02/2013 09:12 AM, Andrew Hughes wrote:
> ----- Original Message -----
>> sh ./configure --enable-sjavac
>>
>> -- Jon
>>
>> On 03/26/2013 03:43 PM, Martin Buchholz wrote:
>>> If I modify an ordinary JDK source file (like StringBuilder.java), then all
>>> files are recompiled, even those that don't have any compile-time
>>> dependency on StringBuilder.
>>>
>>> ## Starting jdk
>>> Compiling 9412 files for BUILD_JDK
>>>
>>> I'd like to see instead
>>>
>>> Compiling 103 files for BUILD_JDK
>>
> And what does that do?  I see no mention of it in README-builds.html.

sjavac -- short for smart javac -- is a new tool written by Fredrik 
Ohrstrom --
that does intelligent, possibly parallel, compilation of Java files.     
It uses
an internal server architecture that can take advantage of modern multi-core
systems, and (after an initial compilation) it can take advantage of 
dependency
analysis to minimize the number of files that are recompiled after a change.

We're still trying to work out some remaining issues, not least the 
resource
management, since it's a hungry beast, so it is not enabled by default, but
can be enabled with the --enable-sjavac flag.

-- Jon




More information about the build-dev mailing list