Wat is JIT in Java? - Inzicht in Java Fundamentals

De Just-In-Time-compiler is een van de integrale onderdelen van de Java Runtime Environment. Dit artikel over JIT in Java zal u vertellen hoe deze compiler de prestaties van Java-applicaties verbetert.

Elke programmeertaal gebruikt een compiler om de taalcode op hoog niveau om te zetten in binaire code op machineniveau, omdat het systeem alleen de binaire code begrijpt. Op basis van het type programmeertaal verschilt de compiler. Nu over de gebruikt het deze geweldige compiler genaamd de JIT (Just-in-Time) in Java . Deze blog zal je alles vertellen over JIT Java Compiler.



hoe java-programma te beëindigen

Hieronder staan ​​de onderwerpen die in dit artikel worden behandeld:



Dus laten we beginnen!

Java JIT Compiler - Overzicht

De Just-In-Time-compiler is een van de integrale onderdelen van de . Het is voornamelijk verantwoordelijk voor prestatieoptimalisatie van op Java gebaseerde applicaties tijdens runtime of uitvoeringstijd. Over het algemeen is het belangrijkste motto van de compiler het verhogen van de prestaties van een applicatie voor de eindgebruiker en de applicatie-ontwikkelaar.



Duik diep in JIT in Java

  • Bytecode is het belangrijkste potentieel van Java's WORA-omgeving (één keer schrijven, overal uitvoeren). Snelheid van de Java-applicatie hangt af van de manier waarop de bytecode wordt geconverteerd naar de oorspronkelijke machinecode. De bytecode kan worden geïnterpreteerd of gecompileerd naar native code of kan rechtstreeks op de processor worden uitgevoerd. Maar als de bytecode wordt geïnterpreteerd, heeft dit rechtstreeks invloed op de snelheid van de toepassing.

  • Om de prestaties te versnellen, communiceert de JIT-compiler met JVM op het moment van uitvoering om bytecode-reeksen te compileren in native machinecode. Kortom, bij gebruik van JIT Compiler, wordt de native code gemakkelijk uitgevoerd door de hardware in vergelijking met JVM Interpreter. Door dit te doen, zal er een enorme winst in uitvoeringssnelheid zijn.

  • Wanneer de JIT-compiler de reeks bytecode compileert, voert deze ook bepaalde optimalisaties uit, zoals gegevensanalyse, vertaling van stapelbewerkingen naar registerbewerkingen, het elimineren van subuitdrukkingen, enz. zeer efficiënt als het gaat om uitvoering en prestatie.



Nu u de basisprincipes van JIT Compiler kent, gaan we verder en begrijpen we hoe het werkt.

Werking van JIT Compiler in Java

De JIT Compiler versnelt de prestaties van de Java-applicaties tijdens runtime. Omdat Java een , het bestaat uit . In feite vormt het een bytecode die platformonafhankelijk is en ex uitgevoerd door de JVM in verschillende architecturen.

Werkstroom:

Onderstaand diagram laat zien hoe de feitelijke werking van compilatie plaatsvindt in Java Runtime Environment.

JIT-compiler - JIT in Java - Edureka

  1. Wanneer u het , Gebruikt JRE javac-compiler om het hoge niveau te compileren Broncode naar bytecode . Hierna laadt JVM de bytecode tijdens runtime en converteert deze naar binaire code op machineniveau voor verdere uitvoering met behulp van Interpreter.

  2. Zoals ik hierboven al heb vermeld, vermindert de interpretatie van Java-bytecode de prestaties in vergelijking met een native applicatie. Dat is waar JIT Compiler helpt om de prestaties te verbeteren door de bytecode te compileren in native machinecode 'net op tijd' rennen.

    klassenpad instellen in java
  3. De JIT-compiler wordt standaard geactiveerd en ingeschakeld wanneer een methode wordt aangeroepen in Java. Wanneer een methode wordt gecompileerd, roept Java Virtual Machine de gecompileerde code van de methode rechtstreeks aan zonder deze te interpreteren. Daarom is er niet veel geheugengebruik en processortijd nodig. Dat versnelt in feite de prestaties van de Java Native Application.

Dus zo werkt het. Laten we nu dieper in dit artikel duiken en de beveiligingsaspecten van JIT Compiler in Java begrijpen.

Beveiligingsaspecten van JIT in Java

De compilatie van bytecode in machinecode door JIT Compiler gebeurt rechtstreeks in het geheugen. d.w.z. de compiler voert de machinecode rechtstreeks in het geheugen in en voert deze uit. In dit geval slaat het de machinecode niet op de schijf op voordat het klassenbestand wordt aangeroepen en uitgevoerd. In principe moet het geheugen worden gemarkeerd als uitvoerbaar. Om veiligheidsredenen moet dit worden voltooid nadat de code in het geheugen is geschreven. Het moet ook worden gemarkeerd als alleen-lezen, aangezien het uitvoerbare geheugen een beveiligingslek is. Als je hier meer over wilt weten, kun je dit artikel lezen op JIT Compiler Beveiligingsaspecten .

Laten we nu verder gaan en de voor- en nadelen van de Just-In-Time-compiler in Java.

Voors en tegens van JIT in Java

Voordelen :

  1. De Java-code die u jaren geleden hebt geschreven, zal zelfs vandaag de dag sneller werken en dat verbetert de prestaties van Java-programma's.

  2. Native images worden ook sneller uitgevoerd omdat ze geen opstartactiviteiten hebben en minder geheugen nodig hebben.

Nadelen:

  1. Verhoogt de complexiteit van .

  2. Programma's met minder code profiteren niet van Just-In-Time-compilatie.

Dit brengt ons bij het einde van dit artikel over JIT in Java. Ik hoop dat je het informatief vond.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen ook een curriculum te bedenken dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van dit 'JIT in Java' -artikel en we nemen zo snel mogelijk contact met u op.