Lai samazinātu vidējo atkritumu savākšanas pauzes laiku savā CI/CD konveijerā, varat veikt šīs darbības:
1. Atkritumu savākšanas iestatījumu optimizēšana:
- Palieliniet jaunās paaudzes izmēru:- Palielināt jaunās paaudzes skaitu, lai samazinātu atkritumu savākšanas biežumu.
- To var izdarīt, iestatot JVM argumentu "-Xmn" vai "-XX:NewRatio".
- Pielāgojiet atkritumu savākšanas intervālu:
- Pielāgojiet atkritumu savākšanas intervālu, lai samazinātu pauzes laiku.
- To var izdarīt, iestatot JVM argumentu "-Dsun.rmi.dgc.server.gcInterval" vai "-Dsun.rmi.dgc.client.gcInterval".
2. Pārraugiet un analizējiet atkritumu savākšanu:
- Izmantojiet atkritumu savākšanas profilētājus:- Izmantojiet tādus rīkus kā JProfiler, YourKit vai JVisualVM, lai uzraudzītu un analizētu atkritumu savākšanu.
- Šie rīki var palīdzēt noteikt atmiņas noplūdes, optimizēt objektu izveides ātrumu un samazināt atkritumu savākšanas pauzes laiku.
3. Optimizējiet objektu izveides rādītājus:
- Samazināt objektu izveidi:- Samaziniet objektu izveides ātrumu jūsu lietojumprogrammā.
- To var izdarīt, optimizējot kodu, lai izveidotu mazāk objektu, vai izmantojot kešatmiņas mehānismus.
4. Izmantojiet vienlaicīgu atkritumu savākšanu:
- Iespējot vienlaicīgu atkritumu savākšanu:- Iespējojiet vienlaicīgu atkritumu savākšanu, lai samazinātu pauzes laiku.
- To var izdarīt, iestatot JVM argumentu "-XX:+UseConcMarkSweepGC".
5. Pārraugiet un optimizējiet atmiņas izmantošanu:
- Monitora atmiņas izmantošana:- Pārraugiet atmiņas izmantošanu, lai noteiktu atmiņas noplūdes un optimizētu atmiņas lietojumu.
- To var izdarīt, izmantojot tādus rīkus kā VisualVM vai GCeasy.
6. Pārbaudiet un uzlabojiet:
- Pārbaudīt un uzlabot iestatījumus:- Pārbaudiet un uzlabojiet atkritumu savākšanas iestatījumus, lai sasniegtu optimālu veiktspēju.
- To var izdarīt, palaižot lietojumprogrammu zem ielādes un pārraugot atkritumu savākšanas pauzes laikus.
Veicot šīs darbības, jūs varat samazināt vidējo atkritumu savākšanas pauzes laiku savā CI/CD konveijerā un nodrošināt efektīvu lietojumprogrammu veiktspēju.
Citāts:[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