JDK-8198698 : Support Lambda proxy classes in dynamic CDS archive
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 10
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-02-26
  • Updated: 2024-10-17
  • Resolved: 2020-06-10
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 15 JDK 16
15 b27Fixed 16Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Many classes are generated at runtime when Lambda expressions are invoked. We can improve start-up time by storing these generated classes in the CDS archive.
Comments
Changeset: 847a3bac Author: Calvin Cheung <ccheung@openjdk.org> Date: 2020-06-10 15:50:26 +0000 URL: https://git.openjdk.java.net/lanai/commit/847a3bac
02-07-2020

javac perf number: Results of " perf stat -r 40 bin/javac -J-Xshare:on -J-XX:SharedArchiveFile=javac2.jsa Bench_HelloWorld.java " 1: 2289819600 2140372555 (-149447045) ----- 392.120 371.430 (-20.690) ---- 2: 2291018493 2137239397 (-153779096) ----- 393.620 369.650 (-23.970) ----- 3: 2294362778 2144138696 (-150224082) ----- 393.690 369.750 (-23.940) ----- 4: 2293873199 2134164778 (-159708421) ----- 394.730 369.070 (-25.660) ----- 5: 2293469937 2140314791 (-153155146) ----- 394.260 368.500 (-25.760) ----- 6: 2297328639 2136265295 (-161063344) ----- 393.290 370.540 (-22.750) ---- 7: 2290620556 2136539397 (-154081159) ----- 394.040 369.590 (-24.450) ----- 8: 2287286462 2137335302 (-149951160) ----- 392.170 368.870 (-23.300) ---- 9: 2286027025 2138476569 (-147550456) ----- 391.856 371.460 (-20.396) ---- 10: 2290393642 2137445606 (-152948036) ----- 394.260 368.080 (-26.180) ----- ============================================================ 2291417755 2138227613 (-153190142) ----- 393.402 369.692 (-23.710) ----- instr delta = -153190142 -6.6854% time delta = -23.710 ms -6.0269%
10-06-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/f32cc62c5821 User: ccheung Date: 2020-06-10 15:52:16 +0000
10-06-2020

Added 3 attachments: archive_lambda_proxy.txt : high level design doc with some perf results TestD.java, TestD.jar : test program for perf measurements
29-05-2020

FYI, a discussion of how Lambda is implemented inside HotSpot (circa JDK 12) https://docs.google.com/presentation/d/1yVDuBM9LBpHROlcP8cVUf6lGGhuoyikys4W5-xlubho/
03-07-2019