JDK-8019239 : Properly clean up sjavac heuristics
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8
  • Priority: P4
  • Status: Resolved
  • Resolution: Not an Issue
  • Submitted: 2013-06-27
  • Updated: 2015-06-09
  • Resolved: 2015-06-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Blocks :  
Relates :  
Description
Sjavac currently has heuristics to used to figure out how many threads and how many classes can be compiled at a time based on size of heap and if pointers are 32 or 64 bit. The problem is, this is currently happening in the client process and not the server process, so the information gathered might be wrong.

Also, the heuristics are very crude when reaching the conclusion that the amount of memory isn't enough for compiling everything in one batch. This makes compilation very slow if you happen to fall under the treshold.
Comments
This is no longer an issue in JDK 9 since the build has been split up into multiple considerable smaller chunks.
09-06-2015

Looking at the code, the first part (regarding architecture / available memory on client side rather than server side) seems to have been resolved. Will start looking into the second part now.
06-08-2014