hotspot | |
---|---|
Sorts | Java Virtual Machine |
Utvecklaren | Oracle (tidigare Sun Microsystems ) |
Skrivet i | C++ |
Operativ system | Programvara för flera plattformar |
Första upplagan | 1999 [1] |
senaste versionen | 25.77-b03 |
Licens | GNU General Public License |
Hemsida | openjdk.java.net/groups/… |
HotSpot är en grundläggande Java Virtual Machine (JVM) för både klient- och serverdatorer , släppt av Oracle Corporation. För att förbättra prestandan har den JIT dynamisk kompilering och adaptiv optimeringsteknik .
HotSpot, som först släpptes den 27 april 1999, utvecklades ursprungligen av Longview Technologies, ett litet företag som grundades 1994 . 1997 köpte Sun Microsystems [2] företaget . Till en början användes HotSpot som ett tillägg till Java 1.2, men denna virtuella maskin blev den viktigaste med lanseringen av Java 1.3 [3] .
Denna JVM kallas "HotSpot" eftersom den, när den exekverar "Java"-bytekoden , letar efter sina "hot spots" (engelska "hot spots") - upprepade gånger. Sökningen syftar till att optimera deras exekvering: ge dem mer resurser tillsammans med att minska overhead för att exekvera mindre resurskrävande kod.
HotSpot kallas ofta för den högsta presterande JVM i sin klass. I teorin, genom adaptiv optimering, kan ett program som körs i denna JVM vara mer prestanda än dess ursprungliga motsvarighet [4] .
Den virtuella "HotSpot"-maskinen är skriven i " C++ ". Som anges på HotSpots hemsida är dess källkodsstorlek 250 000 rader [5] . Hotspot tillhandahåller följande funktionalitet:
Klientversionen av den virtuella maskinen kännetecknas av lägre applikationsstarttid och mindre minnesförbrukning jämfört med serverversionen, samtidigt som den ger efter för den senare i prestanda.
"HotSpot" stöder ett stort antal kommandoradsargument för att konfigurera den virtuella maskinen vid start. Vissa av dem är standard och stöds av andra JVM- implementationer , andra är inte för att de är specifika (alternativ som börjar med -Xeller -XX) [6] [7] [8] [9] .
Den 13 november 2006 släpptes Sun Microsystems virtuella maskin och JDK under GPL v2-licensen [ 10] (se Suns OpenJDK Hotspot-sida ). Denna kod blev en del av Java 7.
När det gäller JDK , stöds HotSpot för närvarande av Oracle på Microsoft Windows , Linux och Solaris operativsystem . Stöd för ISA tillhandahålls av plattformarna IA-32 , x86-64 och SPARC (endast på Solaris). [elva]
Tredjepartsportar för Mac OS X och andra Unix- operativsystem finns också tillgängliga . Flera olika hårdvaruarkitekturer stöds, inklusive x86, PowerPC och SPARC (endast Solaris).
Portering av HotSpot kompliceras av det faktum att denna virtuella maskin huvudsakligen är skriven i C++ med hjälp av assemblerspråksinfogningar [12] . För att undvika detta har IcedTea- projektet utvecklat en generisk port för HotSpot-tolken kallad zero-assembler Hotspot (eller helt enkelt noll ) som innehåller lite eller ingen assemblerkod. Denna port utvecklas med målet att göra HotSpot portabel till olika Linux- processorarkitekturer , vilket gör den nästan obegränsat portabel. Zero-assembler Hotspot- kod används för alla icke - x86 -arkitekturer ( PPC , IA64 , S390 och ARM ) sedan version 1.6 [13] [14] [15] .
Gary Benson , utvecklare av IcedTea, utvecklar för närvarande en plattformsoberoende implementering av dynamisk JIT -kompilering kallad Shark for HotSpot med hjälp av LLVM utöver Hotspots noll-assembler [16] [17] .
Java Virtual Machines ( jämförelse ) | |
---|---|
Sun , Oracle | |
Stora implementeringar | |
Inbäddad |
|
Övrig | |
Utan stöd |