hotspot | |
---|---|
Type | Java virtuel maskine |
Udvikler | Oracle (tidligere Sun Microsystems ) |
Skrevet i | C++ |
Operativ system | Cross-platform software |
Første udgave | 1999 [1] |
nyeste version | 25,77-b03 |
Licens | GNU General Public License |
Internet side | openjdk.java.net/groups/… |
HotSpot er en kerne virtuel Java-maskine (JVM) til både klient- og servercomputere , udgivet af Oracle Corporation. For at forbedre ydeevnen har den JIT dynamisk kompilering og adaptive optimeringsteknologier .
HotSpot, der først blev udgivet den 27. april 1999, blev oprindeligt udviklet af Longview Technologies, et lille firma grundlagt i 1994 . I 1997 købte Sun Microsystems [2] virksomheden . I første omgang blev HotSpot brugt som en tilføjelse til Java 1.2, men denne virtuelle maskine blev den vigtigste med udgivelsen af Java 1.3 [3] .
Denne JVM kaldes "HotSpot", fordi den, når den udfører "Java"-bytekoden , leder efter sine "hot spots" (engelsk "hot spots") - gentagne gange. Søgningen er rettet mod at optimere deres eksekvering: give dem flere ressourcer sammen med at reducere overhead for at udføre mindre ressourcekrævende kode.
HotSpot omtales ofte som den højest ydende JVM i sin klasse. I teorien, gennem adaptiv optimering, kan et program, der kører i denne JVM, være mere effektivt end dets oprindelige ækvivalent [4] .
Den virtuelle "HotSpot"-maskine er skrevet i " C++ ". Som angivet på HotSpot-hjemmesiden er dens kildekodestørrelse 250.000 linjer [5] . Hotspot giver følgende funktionalitet:
Klientversionen af den virtuelle maskine er kendetegnet ved lavere applikationsstarttid og mindre hukommelsesforbrug sammenlignet med serverversionen, mens den giver efter for sidstnævnte i ydeevne.
"HotSpot" understøtter et stort antal kommandolinjeargumenter til at konfigurere den virtuelle maskine ved opstart. Nogle af dem er standard og understøttes af andre JVM- implementeringer , andre er ikke, fordi de er specifikke (indstillinger, der starter med -Xeller -XX) [6] [7] [8] [9] .
Den 13. november 2006 blev Sun Microsystems virtuelle maskine og JDK frigivet under GPL v2-licensen [10] (se Suns OpenJDK Hotspot-side ). Denne kode blev en del af Java 7.
Med hensyn til JDK er HotSpot i øjeblikket understøttet af Oracle på Microsoft Windows , Linux og Solaris operativsystemer . Support til ISA'er leveres af platformene IA-32 , x86-64 og SPARC (kun på Solaris). [elleve]
Tredjepartsporte til Mac OS X og andre Unix -operativsystemer er også tilgængelige . Flere forskellige hardwarearkitekturer understøttes, herunder x86, PowerPC og SPARC (kun Solaris).
Portering af HotSpot er kompliceret af det faktum, at denne virtuelle maskine hovedsageligt er skrevet i C++ ved hjælp af assemblersprogsindsættelser [12] . For at undgå dette har IcedTea- projektet udviklet en generisk port af HotSpot-fortolkeren kaldet zero-assembler Hotspot (eller blot nul ), der indeholder lidt eller ingen samlingskode. Denne port udvikles med det mål at gøre HotSpot bærbar til forskellige Linux -processorarkitekturer , hvilket gør den næsten ubegrænset bærbar. Zero-assembler Hotspot -kode bruges til alle ikke - x86 -arkitekturer ( PPC , IA64 , S390 og ARM ) siden version 1.6 [13] [14] [15] .
Gary Benson , udvikler af IcedTea, er i øjeblikket ved at udvikle en platformsuafhængig implementering af dynamisk JIT -kompilering kaldet Shark for HotSpot ved hjælp af LLVM ud over Hotspots nul-assembler [16] [17] .
Java Virtual Machines ( sammenligning ) | |
---|---|
Sol , Oracle | |
Større implementeringer | |
Indlejret |
|
Andet | |
Ikke understøttet |