Sobes.tech
Junior — Middle

Ποια επιχειρήματα γραμμής εντολών είναι διαθέσιμα για τη διαμόρφωση της JVM κατά την εκκίνηση μιας εφαρμογής Java;

sobes.tech AI

Απάντηση από AI

Κατά την εκκίνηση μιας εφαρμογής Java, η JVM μπορεί να διαμορφωθεί χρησιμοποιώντας διάφορα επιχειρήματα γραμμής εντολών που επηρεάζουν τη συμπεριφορά της εικονικής μηχανής. Οι κύριες κατηγορίες επιχειρημάτων:

  • Ρύθμιση μνήμης:

    • -Xms<size> — αρχικό μέγεθος της στοίβας (heap), π.χ., -Xms512m
    • -Xmx<size> — μέγιστο μέγεθος της στοίβας, π.χ., -Xmx1024m
    • -Xss<size> — μέγεθος της στοίβας για κάθε νήμα
  • Ρύθμιση συλλέκτη garbage:

    • -XX:+UseG1GC — ενεργοποίηση G1
    • -XX:+UseConcMarkSweepGC — ενεργοποίηση CMS
    • -XX:+UseParallelGC — ενεργοποίηση παράλληλου συλλέκτη garbage
  • Αποσφαλμάτωση και παρακολούθηση:

    • -Xdebug — ενεργοποίηση λειτουργίας αποσφαλμάτωσης
    • -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 — διαμόρφωση απομακρυσμένης αποσφαλμάτωσης
    • -XX:+PrintGCDetails — εμφάνιση λεπτομερών πληροφοριών σχετικά με τη συλλογή garbage
  • Βελτιστοποίηση απόδοσης:

    • -XX:MaxPermSize=<size> (για παλαιότερες εκδόσεις JVM) — μέγεθος της διαρκούς γενιάς
    • -XX:+UseStringDeduplication — deduplication συμβολοσειρών (για G1)
  • Γενικά:

    • -D<όνομα>=<τιμή> — ορισμός ιδιοτήτων συστήματος
    • -verbose:gc — αναλυτική έξοδος σχετικά με τη συλλογή garbage

Παράδειγμα εκκίνησης με ρύθμιση μνήμης και ενεργοποίηση G1:

java -Xms512m -Xmx2g -XX:+UseG1GC -Dconfig.file=app.properties -jar myapp.jar