On 06/10/2015 12:38, Claes Redestad wrote:
Alternatively, wouldn't it be possible for the plugin to modify the
module-info.class directly?
Generating the classes at link time is about eliminating the need to
parse the module-info and reconstitute the module descriptors via the
builder API. This is the 82ms that is dominating the initialization, a
lot of it lambda related, some of it because we are starting out in the
interpreter and of course triggering class loading and compilation.
:
In general I think improving startup by staving off the first use of
lambda isn't very helpful except for trivial applications (which we
often over-emphasize when testing startup), while moving module
validation to link time seems more like a real gain.
I would hope that over time that the LF initialization can be improved
as the cost of first usage is currently very significant. With a link
step then we have the opportunity to generate lambda proxy classes at
link time so that could potentially help too.
That said, it is also important to not regress startup. If it's 50 or
100ms more than JDK 8 then someone running a short lived tool will
notice and complain.
-Alan.