Keskmise prügikoristuspausi aja vähendamiseks CI/CD torujuhtmes võite järgida neid samme.
1. Prügikoristusseadete optimeerimine:
- Suurendage noore põlvkonna suurust:- Suurendada noore põlvkonna suurust, et vähendada prügiveo sagedust.
- Seda saab teha, määrates JVM-i argumendi "-Xmn" või "-XX:NewRatio".
- Reguleerige prügi kogumise intervalli:
- Pausiaja vähendamiseks reguleerige prügi kogumise intervalli.
- Seda saab teha, määrates JVM-i argumendi "-Dsun.rmi.dgc.server.gcInterval" või "-Dsun.rmi.dgc.client.gcInterval".
2. Jälgige ja analüüsige prügikoristust:
- Kasutage prügikoristusprofiile:- Kasutage prügi kogumise jälgimiseks ja analüüsimiseks selliseid tööriistu nagu JProfiler, YourKit või JVisualVM.
- Need tööriistad aitavad tuvastada mälulekkeid, optimeerida objektide loomise kiirust ja vähendada prügikoristuspausi aega.
3. Optimeerige objektide loomise määra:
- Vähenda objektide loomist:- Vähendage oma rakenduses objektide loomise kiirust.
- Seda saab teha koodi optimeerimisega, et luua vähem objekte, või vahemällu salvestamise mehhanisme kasutades.
4. Kasutage samaaegset prügikoristust:
- Luba samaaegne prügikogumine:- Pausiaja lühendamiseks lubage samaaegne prügikoristus.
- Seda saab teha JVM-i argumendi määramisega "-XX:+UseConcMarkSweepGC".
5. Jälgige ja optimeerige mälukasutust:
- Jälgi mälukasutust:- Jälgige mälukasutust, et tuvastada mälulekkeid ja optimeerida mälukasutust.
- Seda saab teha selliste tööriistade nagu VisualVM või GCeasy abil.
6. Testige ja täpsustage:
- Seadete testimine ja täpsustamine:- Optimaalse jõudluse saavutamiseks testige ja täpsustage oma prügikoristusseadeid.
- Seda saab teha, käivitades rakenduse koormuse all ja jälgides prügikoristuspausi aegu.
Järgides neid samme, saate oma CI/CD torujuhtmes vähendada keskmist prügikoristuspausi aega ja tagada rakenduse tõhusa jõudluse.
Tsitaadid:[1] https://www.dynatrace.com/resources/ebooks/javabook/reduce-garbage-collection-pause-time/
[2] https://blog.heaphero.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[3] https://dzone.com/articles/how-to-reduce-long-gc-pause
[4] https://blog.gceasy.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[5] https://github.com/cypress-io/cypress/issues/8525