redhat-developer / redhat-developer/vscode-java
Enable JVM Heap trimming by default
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.3k
- Forks
- 546
- Merge medio
- 20 h 1 min
- PR fusionados (30 d)
- 11
Descripción
@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?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Revisa cómo la extensión pasa argumentos de JVM al servidor de lenguaje Java y, a continuación, compara las flags solicitadas con OpenJDK JDK-8293114 y JDK-8204089 y con la discusión de Netty referenciada. Se considera terminado cuando las opciones de recorte del heap y de GC periódico de G1 estén habilitadas de forma predeterminada, preservando el comportamiento en versiones anteriores de JDK 17 y en OpenJ9.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- developer-experience, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100