Java virtuel maskine

Den Java Virtual Machine (engelsk Java virtuel maskine , Rep. JVM ) er en fiktiv computer enhed , der udfører programmer kompileret ind Java bytekode .

Enheden er simuleret af software, der er specifik for hver platform eller par ( maskine / operativsystem ) og tillader Java- applikationer, der er kompileret i bytecode, til at producere de samme resultater uanset platformen, så længe den har den relevante Java-virtuelle maskine.

En virtuel Java-maskine gør det muligt at udføre andre sprog end Java-sproget, så længe en compiler omdanner udtrykkene fra dette andet sprog til en række bytes, der respekterer det binære format for en Java-klasse.

Den virtuelle maskine udfører instruktionerne fra bytekoden indeholdt i Java-klassen ved at følge stakmodellen  : hvert stakniveau indeholder de data, der er specifikke for hver operation.

En Sun- specifikation beskriver de funktioner og egenskaber, som alle java-virtuelle maskiner skal overholde. Derudover inkluderer de fleste af disse maskiner en affaldssamler (begrebet er citeret i specifikationen, men uden at være formelt obligatorisk) eller en on-the-fly kompilator .

Da Java-kompilatoren udfører få optimeringer, er det op til den virtuelle maskine at udføre dem i overensstemmelse med sidstnævntes egne mål.

HotSpot, Oracles virtuelle maskine

HotSpot er den mest anvendte maskine. Det blev skabt og produceret af Sun, det er nu Oracle 's ejendom , da sidstnævnte købte Sun. Det er gratis, proprietær op til version 6 (stabil) og fri fra version 7.

Det 11. november 2006, Sun Microsystems har offentliggjort kilderne til sin HotSpot virtuelle maskine og dens javac-kompilator under GNU GPL- licensen .

Den allerførste version opførte sig kun som en tolk . Denne tilgang straffede, fordi tolken bruger mere tid på at fortolke end at udføre. Derefter kom on-the-fly kompilering , som oversætter bytecode til maskinsprog og udfører dette maskinsprog. Derefter blev den virtuelle maskine i stand til at opdage de hyppigst anvendte dele for at koncentrere optimeringerne om dem. Den er udstyret med en profil og standardoptimeringer såsom fladning af sløjferne. Alle disse operationer kan udføres i flere passeringer, enten for at forbedre dem gradvist eller for at annullere dem, hvis de viser sig at være forældede.

Andre virtuelle Java-maskiner

Under udvikling

Forladt

Tillæg

Interne links

eksterne links

Referencer

  1. (in) Java Virtual Machine Specification, anden udgave
  2. (i) skraldindsamlingsindeksbogstav G
  3. (da) http://openjdk.java.net/groups/hotspot/
  4. (i) Java teori og praksis: Dynamisk kompilering og resultatmåling