Hotspot

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 januari 2014; kontroller kräver 20 redigeringar .
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 .

Historik

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] .

Etymologi

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.

Perspektiv

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] .

Funktioner

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.

JVM-flaggor

"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] .

Licens

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.

Plattformar som stöds

Stöds av Sun Microsystems

När det gäller JDK , stöds HotSpot för närvarande av OracleMicrosoft Windows , Linux och Solaris operativsystem . Stöd för ISA tillhandahålls av plattformarna IA-32 , x86-64 och SPARC (endast på Solaris). [elva]

Portar från tredje part

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] .

Se även

Anteckningar

  1. https://web.archive.org/web/thefreelibrary.com/Sun+Announces+Availability+of+the+Java+HotSpot+Performance+Engine%3b...-a054477747 - 1999.
  2. Sun's Gosling Previews Hotspot Java Virtual Machine . ComputerGram (13 februari 1998). Hämtad: 25 juli 2010.
  3. Sun Microsystems släpper den snabbaste Java-plattformen på klientsidan hittills (nedlänk) . Sun Microsystems (8 maj 2000). Hämtad 25 juli 2010. Arkiverad från originalet 3 maj 2012. 
  4. Lewis, JP Prestanda av Java kontra C++ (otillgänglig länk) ( 2004 ). Hämtad 25 juli 2010. Arkiverad från originalet 3 maj 2012. 
  5. HotSpot-gruppen (nedlänk) . Sun Microsystems ( 2007 ). — « Det finns nästan 1500 C/C++ header- och källfiler, omfattande nästan 250 000 rader kod ». Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 
  6. Java HotSpot VM-alternativ (nedlänk) . Sun Microsystems . Hämtad 8 februari 2009. Arkiverad från originalet 3 maj 2012. 
  7. Mocker, Joseph D. En samling av JVM-alternativ (nedlänk) (28 augusti 2007). Hämtad 20 juli 2010. Arkiverad från originalet 13 oktober 2012. 
  8. Maximovich, Dmitri Den mest kompletta listan över -XX-alternativ för Java 6 JVM (länk ej tillgänglig) . Hämtad 20 juli 2010. Arkiverad från originalet 30 januari 2010. 
  9. Nutter, Charles My Favorite Hotspot JVM Flags (nedlänk) (29 januari 2009). Hämtad 20 juli 2010. Arkiverad från originalet 3 maj 2012. 
  10. Sun öppnar Java (nedlänk) . Sun Microsystems (13 november 2006). Hämtad 20 juli 2010. Arkiverad från originalet 3 maj 2012. 
  11. Systemkonfigurationer som stöds (nedlänk) . Oracle . Hämtad 1 januari 2011. Arkiverad från originalet 3 maj 2012. 
  12. Gary, Benson Garys guide till portering av IcedTea (nedlänk) (6 november 2007). Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 
  13. Gary, Benson 1 februari 2008 (nedlänk) (1 februari 2008). Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 
  14. Andrew, Haley Att göra zero-assembler till standard på ppc (nedlänk) (31 januari 2008). Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 
  15. Lilian, Angel IcedTea 1.6 Släppt med Zero-assembler och JNLP-stöd! (inte tillgänglig länk) . Röd hatt (13 februari 2008). Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 
  16. Gary, Benson 31 mars 2008 (nedlänk) . Röd hatt (21 juli 2010). Hämtad 30 maj 2008. Arkiverad från originalet 3 maj 2012. 
  17. Gary, Benson 28 maj 2008 (nedlänk) . Röd hatt (28 maj 2008). - Shark är en plattformsoberoende JIT för HotSpot, för att komplettera noll-assembler-tolken vi har använt . Tillträdesdatum: 21 juli 2010. Arkiverad från originalet den 3 maj 2012. 

Länkar