Τι είναι το JIT στην Java; - Κατανόηση των βασικών αρχών Java



Ο μεταγλωττιστής Just-In-Time είναι ένα από τα αναπόσπαστα μέρη του Java Runtime Environment. Αυτό το άρθρο σχετικά με το JIT στην Java θα σας πει πώς αυτός ο μεταγλωττιστής βελτιώνει την απόδοση των εφαρμογών Java.

Κάθε γλώσσα προγραμματισμού χρησιμοποιεί έναν μεταγλωττιστή για να μετατρέψει τον κωδικό γλώσσας υψηλού επιπέδου σε δυαδικό κώδικα επιπέδου μηχανής, επειδή το σύστημα κατανοεί μόνο τον δυαδικό κώδικα. Με βάση τον τύπο της γλώσσας προγραμματισμού, ο μεταγλωττιστής διαφέρει. Τώρα μιλάμε για το , χρησιμοποιεί αυτόν τον καταπληκτικό μεταγλωττιστή που ονομάζεται JIT (Just-in-Time) στην Java . Αυτό το ιστολόγιο θα σας πει όλα για το JIT Java Compiler.

Ακολουθούν τα θέματα που καλύπτονται σε αυτό το άρθρο:





Ας ξεκινήσουμε λοιπόν!

Java JIT Compiler - Επισκόπηση

ο Μεταγλωττιστής Just-In-Time είναι ένα από τα αναπόσπαστα μέρη του . Είναι κυρίως υπεύθυνο για τη βελτιστοποίηση απόδοσης εφαρμογών που βασίζονται σε Java στο χρόνο εκτέλεσης ή στο χρόνο εκτέλεσης. Γενικά, το κύριο σύνθημα του μεταγλωττιστή είναι η αύξηση της απόδοσης μιας εφαρμογής για τον τελικό χρήστη και τον προγραμματιστή της εφαρμογής.



Βαθιά βουτιά στο JIT στην Ιάβα

  • Ο κωδικός byte είναι το κύριο δυναμικό του περιβάλλοντος WORA της Java (Γράψτε μία φορά, εκτελέστε οπουδήποτε). Ταχύτητα του Εφαρμογή Java εξαρτάται από τον τρόπο με τον οποίο ο κώδικας byte μετατρέπεται στον εγγενή κωδικό μηχανής. Ο κωδικός bytec μπορεί να ερμηνευτεί ή να μεταγλωττιστεί σε εγγενή κώδικα ή να εκτελεστεί απευθείας στον επεξεργαστή. Ωστόσο, εάν ο κωδικός bytec ερμηνεύεται, επηρεάζει άμεσα την ταχύτητα της εφαρμογής.

  • Προκειμένου να επιταχυνθεί η απόδοση, ο μεταγλωττιστής JIT επικοινωνεί με το JVM κατά το χρόνο εκτέλεσης για να μεταγλωττίσει τις ακολουθίες κώδικα byte σε εγγενή κώδικα μηχανής. Βασικά, όταν χρησιμοποιείτε το JIT Compiler, ο εγγενής κώδικας εκτελείται εύκολα από το υλικό σε σύγκριση με το JVM Interpreter. Με αυτόν τον τρόπο, θα υπάρξει τεράστιο κέρδος στην ταχύτητα εκτέλεσης.

  • Όταν το JIT Compiler μεταγλωττίζει τη σειρά κώδικα byte, εκτελεί επίσης ορισμένες βελτιστοποιήσεις, όπως ανάλυση δεδομένων, μετάφραση από λειτουργίες στοίβας σε εγγραφές λειτουργιών, εξάλειψη υποεκφράσεων κ.λπ. Αυτό κάνει πολύ αποτελεσματικό όσον αφορά την εκτέλεση και την απόδοση.



Τώρα που γνωρίζετε τις βασικές αρχές του JIT Compiler, ας προχωρήσουμε περαιτέρω και κατανοήστε τη λειτουργία του.

Εργασία του JIT Compiler στην Java

Το JIT Compiler επιταχύνει την απόδοση των εφαρμογών Java στο χρόνο εκτέλεσης. Όπως η Java είναι ένα , αποτελείται από . Βασικά, αποτελεί έναν κώδικα byte που είναι ανεξάρτητος από την πλατφόρμα και eεκτελέστηκε από το JVM σε διαφοροποιημένες αρχιτεκτονικές.

Ροή εργασίας:

Το παρακάτω διάγραμμα απεικονίζει πώς γίνεται η πραγματική επεξεργασία της συλλογής στο Java Runtime Environment.

pass by value vs pass by referensi java

JIT Compiler - JIT σε Java - Edureka

  1. Όταν κωδικοποιείτε το , Το JRE χρησιμοποιεί javac compiler για τη μεταγλώττιση του υψηλού επιπέδου Πηγαίος κώδικας σε κώδικα byte . Μετά από αυτό, το JVM φορτώνει τον κώδικα byte στο χρόνο εκτέλεσης και μετατρέπεται σε δυαδικό κώδικα σε επίπεδο μηχανήματος για περαιτέρω εκτέλεση χρησιμοποιώντας το Interpreter.

  2. Όπως έχω ήδη αναφέρει παραπάνω, η ερμηνεία του κώδικα byte Java μειώνει την απόδοση σε σύγκριση με μια εγγενή εφαρμογή. Εκεί το JIT Compiler βοηθά στην ενίσχυση της απόδοσης, μεταγλώνοντας τον κώδικα byte σε εγγενή κώδικα μηχανήματος 'πάνω στην ώρα' τρέχω.

  3. Ο μεταγλωττιστής JIT ενεργοποιείται και ενεργοποιείται από προεπιλογή όταν καλείται μια μέθοδος σε Java. Όταν μια μέθοδος καταρτίζεται, η Java Virtual Machine καλεί τον μεταγλωττισμένο κώδικα της μεθόδου απευθείας χωρίς να την ερμηνεύσει. Ως εκ τούτου, δεν απαιτεί μεγάλη χρήση μνήμης και χρόνο επεξεργαστή. Αυτό επιταχύνει βασικά την απόδοση της Java Native Application.

Λοιπόν, έτσι λειτουργεί. Τώρα ας δούμε πιο βαθιά σε αυτό το άρθρο και να κατανοήσουμε τις πτυχές ασφάλειας του JIT Compiler στην Java.

Πτυχές ασφαλείας του JIT στην Ιάβα

Η σύνταξη κώδικα byte σε κώδικα μηχανήματος από το JIT Compiler γίνεται απευθείας στη μνήμη. δηλ. ο μεταγλωττιστής τροφοδοτεί τον κωδικό του μηχανήματος απευθείας στη μνήμη και τον εκτελεί. Σε αυτήν την περίπτωση, δεν αποθηκεύει τον κωδικό του μηχανήματος στο δίσκο προτού επικαλεστεί το αρχείο κλάσης και το εκτελέσει. Βασικά, η μνήμη πρέπει να επισημαίνεται ως εκτελέσιμη. Για λόγους ασφαλείας, αυτό θα πρέπει να ολοκληρωθεί αφού ο κώδικας εγγραφεί στη μνήμη. Θα πρέπει επίσης να επισημανθεί ως μόνο για ανάγνωση, καθώς η εκτελέσιμη μνήμη είναι μια τρύπα ασφαλείας. Εάν θέλετε να μάθετε περισσότερα σχετικά με αυτό, μπορείτε να δείτε αυτό το άρθρο Πτυχές ασφάλειας JIT Compiler .

Τώρα, ας προχωρήσουμε τώρα περαιτέρω και να μάθουμε τα πλεονεκτήματα και τα μειονεκτήματα του Συντάκτης Just-In-Time στην Ιάβα.

μοτίβο σχεδίασης mvc στην Ιάβα

Πλεονεκτήματα και μειονεκτήματα του JIT στην Java

Πλεονεκτήματα :

  1. Ο κώδικας Java που έχετε γράψει χρόνια πριν θα τρέξει γρηγορότερα ακόμη και σήμερα και που βελτιώνει την απόδοση των προγραμμάτων Java.

  2. Οι εγγενείς εικόνες εκτελούνται επίσης πιο γρήγορα καθώς δεν διαθέτουν δραστηριότητες εκκίνησης και απαιτεί λιγότερη μνήμη.

Μειονεκτήματα:

  1. Αυξάνει την πολυπλοκότητα του .

  2. Προγράμματα με λιγότερο κώδικα δεν ωφελούνται από τη Συλλογή Just-In-Time.

Αυτό μας φέρνει στο τέλος αυτού του άρθρου σχετικά με το JIT στην Java. Ελπίζω να το βρήκατε ενημερωτικό.

Δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Είμαστε εδώ για να σας βοηθήσουμε σε κάθε βήμα του ταξιδιού σας, για να γίνετε εκτός από αυτές τις ερωτήσεις της συνέντευξης java, έχουμε ένα πρόγραμμα σπουδών που έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του άρθρου 'JIT in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.