corretto-17
corretto-17 copied to clipboard
Feedback Collection for Corretto-Lilliput
If you have tried the nightly build of Corretto-17 of Lilliput (or any other one - OpenJDK, JDK-tip). Please share your experience, with us in a comment.
Feel free to share as a little or as much as you can, we are mostly looking for:
- Reduction of memory utilization
- Throughput improvements (or regressions)
- Latency improvement (or regressions) at various percentiles
- Other metrics changing (positively or negatively)
- Did you run under full load at conditions similar to production
- Version, and flags used
- If you see regressions, do they appear on specific code paths? are you able to share the pattern/sample code?
Hope that will help. We executed our load test tool XLT reporting generator on a larger data set (6.5 GB compressed, 59 GB uncompressed data) on a 16-core Google Cloud C2 machine. JDK 17.0.5 for comparison. Xmx4g with StringDeduplication and G1, no other special flags. About 5 sec faster. The GC final exit output might indicate better overall memory usage. I can provide full logs if desired. No regressions noticed.
Here are the GC stats. I used GCEasy because I was too lazy to look for something different. I hope that helps.
- 17.4.0.1 Tem: https://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMjMvMDEvMTQvZ2MtMTcuMC40LXRlbS5sb2ctLTEwLTktMzY=&channel=WEB
- Lilli: https://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMjMvMDEvMTQvZ2MtMTctbGlsbGkubG9nLS0xMC0xNC0zMA==&channel=WEB
These are not the runs from above, but should still produce the same "trend". Let me know if you need more. Logs below.
Second example using the old version of the software that uses Strings heavily (the new one uses its own CharBuffer to minimize copy operations). Uses a T14s AMD laptop, only real cores assigned to the process.
gc-17-lilli-xlt6.5.log gc-17-xlt65.log
And the GCEasy links:
- 17.0.4: https://gceasy.io/diamondgc-report.jsp?oTxnId_value=3d6e76da-bb70-48ab-ac6f-cf84d7780eb4
- Lilli: https://gceasy.io/diamondgc-report.jsp?oTxnId_value=944c8c7c-67f8-4691-be14-626c5b7a0fc0
Summary: Slightly faster, less allocations.
I downloaded the latest nightly build version of corretto-17, in order to experience lilliput, but there is no jvm option
-XX:+UseCompactObjectHeaders
Please tell me how to enable lilliput , thank you . @yishaigalatzer
Lilliput support is currently on its own branch, even in nightlies - can you confirm that the build you downloaded is on the Lilliput branch?
yes. @benty-amzn
Still can't find this option.
I believe this flag is just gated behind -XX:+UnlockExperimentalVMOptions
:
java -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -version | grep Compact
bool CompactStrings = true {pd product} {default}
uintx HeapFirstMaximumCompactionCount = 3 {product} {default}
uintx HeapMaximumCompactionInterval = 20 {product} {default}
uint MarkSweepAlwaysCompactCount = 4 {product} {default}
bool UseCompactObjectHeaders = false {experimental lp64_product} {default}
bool UseMaximumCompactionOnSystemGC = true {product} {default}
openjdk version "17.0.9" 2023-09-06
OpenJDK Runtime Environment Corretto-17.0.9.5.1 (build 17.0.9+5-Nightly)
OpenJDK 64-Bit Server VM Corretto-17.0.9.5.1 (build 17.0.9+5-Nightly, mixed mode, sharing)
thank you @benty-amzn
OpenJDK 64-Bit Server VM warning: ZGC does not work with compact object headers, disabling UseCompactObjectHeaders
Currently, lilliput cannot work with zgc.When is expected to be able to?