redhat-developer / redhat-developer/vscode-java
Enable JVM Heap trimming by default
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 2.3k
- Forks
- 546
- Ø Merge
- 20 Std. 1 Min.
- Gemergte PRs (30 T.)
- 11
Beschreibung
@maxandersen and @franz1981 taught me java 17 has support for jvm reclaiming memory back to the os:
- https://bugs.openjdk.org/browse/JDK-8293114 this is the feature
- this is what we have for G1 instead: https://bugs.openjdk.org/browse/JDK-8204089
And Netty behaviour is what's missing from the puzzle (see https://github.com/netty/netty/discussions/11845#discussion-3690282)
Meaning that while idle, https://bugs.openjdk.org/browse/JDK-8204089 just shrink back the heap RSS to xms
we need 2 set of VM args to be passed:
- autotrim interval -> which requires something like -XX:+UnlockExperimentalVMOptions -XX:TrimNativeHeapInterval=5000
- G1 periodic GC: -> G1PeriodicGCInterval, G1PeriodicGCInvokesConcurrent and G1PeriodicGCSystemLoadThreshold (for https://bugs.openjdk.org/browse/JDK-8204089)
OpenJDK supports -XX:+IgnoreUnrecognizedVMOptions, in case users run an older JDK 17 that doesn't support the new flags, and OpenJ9 simply ignores unknown flags, so it's probably safe to try it out on insider builds.
@rgrunber @testforstephen @jdneo WDYT?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Prüfe, wie die Erweiterung JVM-Argumente an den Java language server übergibt, und vergleiche anschließend die angeforderten Flags mit OpenJDK JDK-8293114 und JDK-8204089 sowie der referenzierten Netty-Diskussion. Als abgeschlossen gilt die standardmäßige Aktivierung der Optionen für Heap-Trimming und regelmäßige G1-GCs, wobei das Verhalten bei älteren JDK 17-Versionen und OpenJ9 erhalten bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- developer-experience, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 30/100