Hotspot

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 19 ianuarie 2014; verificările necesită 20 de modificări .
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ă .

Istorie

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

Etimologie

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.

Perspective

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

Caracteristici

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ță.

Indicatori JVM

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

Licență

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.

Platforme acceptate

Sprijinit de Sun Microsystems

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

Porturi de la terți

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

Vezi și

Note

  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 februarie 1998). Preluat: 25 iulie 2010.
  3. Sun Microsystems lansează cea mai rapidă platformă Java pentru client de până acum (downlink) . Sun Microsystems (8 mai 2000). Preluat la 25 iulie 2010. Arhivat din original la 3 mai 2012. 
  4. Lewis, JP Performance of Java versus C++ (link inaccesibil) ( 2004 ). Preluat la 25 iulie 2010. Arhivat din original la 3 mai 2012. 
  5. Grupul HotSpot (link în jos) . Sun Microsystems ( 2007 ). — „ Există aproape 1500 de fișiere de antet și sursă C/C++, cuprinzând aproape 250.000 de linii de cod ”. Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 
  6. Opțiuni Java HotSpot VM (link descendent) . Microsisteme solare . Consultat la 8 februarie 2009. Arhivat din original pe 3 mai 2012. 
  7. Mocker, Joseph D. A Collection of JVM Options (link descendent) (28 august 2007). Consultat la 20 iulie 2010. Arhivat din original la 13 octombrie 2012. 
  8. Maximovich, Dmitri Cea mai completă listă de opțiuni -XX pentru Java 6 JVM (link nu este disponibil) . Consultat la 20 iulie 2010. Arhivat din original la 30 ianuarie 2010. 
  9. Nutter, Charles My Favorite Hotspot JVM Flags (downlink) (29 ianuarie 2009). Preluat la 20 iulie 2010. Arhivat din original la 3 mai 2012. 
  10. Sun Opens Java (link downlink) . Sun Microsystems (13 noiembrie 2006). Preluat la 20 iulie 2010. Arhivat din original la 3 mai 2012. 
  11. Configurații de sistem acceptate (downlink) . Oracolul . Consultat la 1 ianuarie 2011. Arhivat din original pe 3 mai 2012. 
  12. ↑ Gary, Ghidul lui Benson Gary pentru portarea IcedTea (link în jos) (6 noiembrie 2007). Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 
  13. Gary, Benson 1 februarie 2008 (link descendent) (1 februarie 2008). Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 
  14. Andrew, Haley Making zero-assembler the default on ppc (downlink) (31 ianuarie 2008). Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 
  15. Lilian, Angel IcedTea 1.6 Lansat cu Zero-assembler și suport JNLP! (link indisponibil) . Pălărie roșie (13 februarie 2008). Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 
  16. Gary, Benson 31 martie 2008 (downlink) . Pălărie roșie (21 iulie 2010). Consultat la 30 mai 2008. Arhivat din original pe 3 mai 2012. 
  17. Gary, Benson 28 mai 2008 (downlink) . Pălărie roșie (28 mai 2008). - Shark este un JIT independent de platformă pentru HotSpot, pentru a completa interpretul zero-assembler pe care l-am folosit . Data accesului: 21 iulie 2010. Arhivat din original pe 3 mai 2012. 

Link -uri