CodeGym/Java kursus/Modul 3/At vælge en skraldemand i Java

At vælge en skraldemand i Java

Ledig

7.1* Sådan vælger du den rigtige skraldeopsamler

Hvis din applikation ikke har strenge latenskrav, skal du bare køre applikationen og lade JVM selv vælge den rigtige samler.

I de fleste tilfælde fungerer standardindstillingerne fint. Om nødvendigt kan du justere bunkestørrelsen for at forbedre ydeevnen. Hvis ydeevnen stadig ikke er som forventet, kan du prøve at ændre opsamleren, så den passer til din applikations krav.

  • Sekventiel . Hvis applikationen har et lille datasæt (op til ca. 100 MB) og/eller den kører på en enkelt processor uden nogen latenskrav.
  • Parallel . Hvis prioriteten er applikationens maksimale ydeevne, og der ikke er nogen latenskrav (eller pauser på et sekund eller mere er acceptable).
  • CMS/G1 . Hvis responstiden er vigtigere end den samlede gennemstrømning, og affaldsindsamlingspauserne bør være kortere end et sekund.
  • ZGC . Hvis responstiden er høj prioritet og/eller en meget stor bunke er involveret.

7.2* Anbefalinger til indsamling af affald

Undgå manuelle udløsere

Ud over de grundlæggende mekanismer for affaldsindsamling er en af ​​de vigtigste punkter ved denne proces i Java, at den er ikke-deterministisk. Det vil sige, at det er umuligt at forudsige, hvornår det præcist vil ske på kørselstidspunktet.

Ved at bruge metoderne System.gc() eller Runtime.gc() kan du inkludere et hint i din kode for at starte skraldeopsamleren, men dette garanterer ikke, at den rent faktisk kører.

Brug analyseværktøjer

Hvis du ikke har nok hukommelse til at køre din applikation, vil du opleve opbremsninger, lange affaldstider, "verdensstop"-hændelser og i sidste ende fejl i hukommelsen. Dette kan indikere, at heapen er for lille, men det kan også indikere, at applikationen har en hukommelseslækage.

Du kan bruge et overvågningsværktøj som jstat eller Java Flight Recorder for at se, om heap-forbruget vokser på ubestemt tid, hvilket kunne indikere en fejl i koden.

Foretrækker standardindstillingerne

Hvis du har en lille, selvstændig Java-applikation, behøver du sandsynligvis ikke at konfigurere affaldsindsamling. Standardindstillingerne vil tjene dig godt.

Brug JVM-flag til at tilpasse

Den bedste tilgang til at konfigurere affaldsindsamling i Java er at indstille JVM-flag. Flag kan bruges til at indstille skraldeopsamleren (f.eks. Seriel, G1 og så videre), den oprindelige og maksimale størrelse af bunken, størrelsen af ​​bunkens skillevægge (f.eks. Young generation, Old generation) og meget mere.

Vælg den rigtige vandhane

En god retningslinje med hensyn til startindstillinger er karakteren af ​​den brugerdefinerede applikation. For eksempel er den samtidige affaldsopsamler effektiv, men rejser ofte "verdensstop"-hændelser, hvilket gør den mere velegnet til intern behandling, hvor lange pauser er acceptable.

Samtidig er CMS garbage collector designet til at minimere latency, hvilket gør den ideel til webapplikationer, hvor lydhørhed er vigtig.

Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu