hotspot | |
---|---|
Tip de | Mașină virtuală Java |
Dezvoltator | Oracle (fost Sun Microsystems ) |
Scris in | C++ |
Sistem de operare | Software multiplatformă |
Prima editie | 1999 [1] |
ultima versiune | 25,77-b03 |
Licență | Licență publică generală GNU |
Site-ul web | openjdk.java.net/groups/… |
HotSpot este o mașină virtuală Java (JVM) de bază pentru computere client și server , lansată de Oracle Corporation. Pentru a îmbunătăți performanța, are tehnologii de compilare dinamică JIT și optimizare adaptivă .
HotSpot, lansat pentru prima dată pe 27 aprilie 1999, a fost dezvoltat inițial de Longview Technologies, o companie mică fondată în 1994 . În 1997, Sun Microsystems [2] a cumpărat compania . La început HotSpot a fost folosit ca o completare la Java 1.2, cu toate acestea, această mașină virtuală a devenit cea principală odată cu lansarea Java 1.3 [3] .
Acest JVM se numește „HotSpot” deoarece, atunci când execută bytecode „Java” , își caută punctele „fierbinți” („hot spots” în engleză) - executate în mod repetat. Căutarea are ca scop optimizarea execuției lor: oferindu-le mai multe resurse, împreună cu reducerea cheltuielilor generale pentru a executa un cod care necesită mai puține resurse.
HotSpot este adesea denumit JVM cu cea mai mare performanță din clasa sa. În teorie, prin optimizare adaptivă, un program care rulează în această JVM poate fi mai performant decât echivalentul său nativ [4] .
Mașina virtuală „HotSpot” este scrisă în „ C++ ”. După cum se menționează pe pagina de pornire HotSpot, dimensiunea codului sursă este de 250.000 de linii [5] . Hotspot oferă următoarele funcționalități:
Versiunea Client a mașinii virtuale se caracterizează printr-un timp mai mic de pornire a aplicației și un consum mai mic de memorie în comparație cu versiunea Server, cedând în același timp la cea din urmă în performanță.
„HotSpot” acceptă un număr mare de argumente de linie de comandă pentru a configura mașina virtuală la pornire. Unele dintre ele sunt standard și suportate de alte implementări JVM , altele nu sunt pentru că sunt specifice (opțiuni care încep cu -Xsau -XX) [6] [7] [8] [9] .
Pe 13 noiembrie 2006, mașina virtuală Sun Microsystems și JDK au fost lansate sub licența GPL v2 [10] (a se vedea pagina OpenJDK Hotspot a Sun ). Acest cod a devenit parte a Java 7.
În ceea ce privește JDK , HotSpot este suportat în prezent de Oracle pe sistemele de operare Microsoft Windows , Linux și Solaris . Suportul pentru ISA este oferit de platformele IA-32 , x86-64 și SPARC (numai pe Solaris). [unsprezece]
Sunt disponibile și porturi de la terți pentru Mac OS X și alte sisteme de operare Unix . Sunt acceptate mai multe arhitecturi hardware diferite, inclusiv x86, PowerPC și SPARC (numai Solaris).
Portarea HotSpot-ului este complicată de faptul că această mașină virtuală este scrisă în principal în C++ folosind inserții în limbaj de asamblare [12] . Pentru a evita acest lucru, proiectul IcedTea a dezvoltat un port generic al interpretului HotSpot numit zero-assembler Hotspot (sau pur și simplu zero ) care conține puțin sau deloc cod de asamblare. Acest port este dezvoltat cu scopul de a face HotSpot portabil pe diferite arhitecturi de procesoare Linux , făcându-l aproape nelimitat de portabil. Codul Hotspot cu asamblare zero este folosit pentru toate arhitecturile non- x86 ( PPC , IA64 , S390 și ARM ) începând cu versiunea 1.6 [13] [14] [15] .
Gary Benson , dezvoltatorul IcedTea, dezvoltă în prezent o implementare independentă de platformă a compilației JIT dinamice numită Shark pentru HotSpot, folosind LLVM în plus față de zero-assembler-ul Hotspot [16] [17] .
Mașini virtuale Java ( comparație ) | |
---|---|
Soare , Oracol | |
Implementări majore | |
Încorporat |
|
Alte | |
Neacceptat |