HotSpot (sanal makine) - HotSpot (virtual machine) - Wikipedia

Java HotSpot Sanal Makinesi
Orijinal yazar (lar)Sun Microsystems
Geliştirici (ler)Oracle Corporation
İlk sürüm27 Nisan 1999; 21 yıl önce (1999-04-27)[1]
Kararlı sürüm
23.25-b01 / 1 Ocak 2016; 4 yıl önce (2016-01-01)
YazılmışC ++, Montaj
İşletim sistemiÇapraz platform
TürJava sanal makinesi
LisansTescilli (eski sürümler), GNU Genel Kamu Lisansı (güncel)
İnternet sitesiopenjdk.java.ağ/ gruplar/sıcak nokta

Sıcak nokta, olarak yayınlandı Java HotSpot Performans Motoru,[1] bir Java sanal makinesi için masaüstü ve sunucu bakımı yapılan ve dağıtılan bilgisayarlar Oracle Corporation. Gibi yöntemlerle gelişmiş performans sunar: tam zamanında derleme ve uyarlanabilir optimizasyon.

Tarih

Java HotSpot Performance Engine 27 Nisan 1999'da piyasaya sürüldü,[1] programlama dilinin bir uygulamasından gelen teknolojiler üzerine inşa edilmiştir Smalltalk isimli Strongtalk, ilk olarak Animorphic olarak işlem gören Longview Technologies tarafından geliştirilmiştir. Longview sanal makinesi, Kendisi hızlı ve aptal ilk derleyicinin yerini alan bir yorumlayıcı ile sanal makine. Sun, Öz projesini iptal ettiğinde, iki kilit kişi, Urs Hölzle ve Lars Bak Longview'i başlatmak için Sun'dan ayrıldı. 1997'de, Sun Microsystems Animorphic satın aldı.[2]

Animorphic'i satın aldıktan kısa bir süre sonra Sun, yeni bir tam zamanında (JIT) derleyici Java sanal makinesi için.[3] Bu yeni derleyici, Sıcak nokta, yazılımın davranışından türetilmiştir: çalışırken Java bayt kodu Self VM'de olduğu gibi HotSpot, programın performansını sürekli olarak analiz eder. sıcak noktalar sık sık veya tekrar tekrar yürütülür. Bunlar daha sonra hedeflenir optimize etme daha az performans açısından kritik kod için minimum ek yük ile yüksek performanslı yürütme sağlar. Bir raporda JVM, bazı C ++ veya C bazı kıyaslamalarda kod.[4]

Başlangıçta Java 1.2 için bir eklenti olarak mevcut,[5] HotSpot, Java 1.3'te varsayılan Sun JVM oldu.[6]

Özellikleri

JRE (aslen Sun'dan, şimdi Oracle'dan) biri adında iki sanal makine içeriyor Müşteri ve diğer Sunucu. İstemci sürümü hızlı yükleme için ayarlanmıştır. Yorumdan yararlanır. Sunucu sürümü daha yavaş yüklenir ve yüksek düzeyde optimize edilmiş üretim için daha fazla çaba harcar JIT derlemeleri daha yüksek performans elde etmek için. Her iki VM de hangi yöntemlerin derleneceğine karar vermek için yapılandırılabilir bir çağrı sayısı eşiği kullanarak yalnızca sık çalıştırılan yöntemleri derler.

Java 7'de sunulan bir seçenek olan katmanlı derleme, sunucu derleyicisinden daha hızlı başlatma süresi sağlamak, ancak benzer veya daha iyi en yüksek performans sağlamak için hem istemci hem de sunucu derleyicilerini birlikte kullanır.[7] Java 8'den başlayarak, katmanlı derleme sunucu VM için varsayılandır.[8]

HotSpot şu dilde yazılmıştır: C ++. Sun, 2007'de yaklaşık 250.000 satırlık kaynak kodu içerdiğini tahmin ediyordu.[9] Hotspot şunları sağlar:

JVM işaretleri

HotSpot birçok komut satırı argümanları sanal makine yürütme seçenekleri için. Bazıları standarttır ve herhangi bir uygunlukta bulunmalıdır Java sanal makinesi; diğerleri HotSpot'a özeldir ve diğer JVM'lerde bulunmayabilir (-X veya -XX ile başlayan seçenekler standart değildir).[12][13][14][15]

Lisans

13 Kasım 2006'da HotSpot JVM ve Java Geliştirme kiti (JDK), GNU Genel Kamu Lisansı (GPL) sürüm 2.[16] Bu, parçası haline gelen koddur Java 7.[17]).

Desteklenen platformlar

Oracle tarafından sürdürülür

Tümünde olduğu gibi Java Geliştirme kiti (JDK), HotSpot tarafından desteklenmektedir Oracle Corporation açık pencereler, Linux, Mac os işletim sistemi, ve Solaris. Destekleniyor komut seti mimariler (ISA'lar) IA-32, x86-64, ARMv7 VFP, ARMv8 ve SPARC (Yalnızca Solaris).[18]

Üçüncü şahısların portları

Bağlantı noktaları ayrıca çeşitli diğer Unix işletim sistemleri. X86 dahil olmak üzere birkaç farklı donanım mimarisi desteklenir, PowerPC ve SPARC (yalnızca Solaris).

HotSpot'u taşımak kod olarak zordur, ancak çoğunlukla C ++, çok içerir montaj dili.[19] Bunu düzeltmek için, Buzlu çay proje, HotSpot için genel bir bağlantı noktası geliştirdi çevirmen aranan sıfır birleştirici Hotspot (veya sıfır), neredeyse hiç montaj kodu olmadan. Bu bağlantı noktası, HotSpot'un yorumlayıcı bileşeninin herhangi bir Linux işlemci mimarisi. Kodu sıfır birleştirici Hotspot tüm olmayanlar için kullanılırx86 HotSpot mimari bağlantı noktaları (PowerPC, Itanium (IA-64 ), S390 ve KOL ) 1.6 sürümünden beri.[20][21][22]

Ayrıca bakınız

Referanslar

  1. ^ a b c "Sun, Java HotSpot Performans Motorunun Kullanılabilirliğini Duyurdu". Basın bülteni. Sun Microsystems. Alındı 26 Mart 2013.
  2. ^ Hizmetler, Chronicle Personel ve Haberler (1997-02-19). "SUN MICRO, LONGVIEW SATIN ALIYOR". SFGATE. Alındı 2020-11-05.
  3. ^ "Azul'un Pauseless GC, Zing, JVM Dillerinde Uçurum Tıklaması". InfoQ. 2011-01-20. Alındı 2016-05-10. [...] Anamorphic, Sun tarafından satın alındı, bu nedenle orijinal ekip Anamorphic adlı bir şirketteydi, Smalltalk'ı hedefleyen bir teknoloji ile geldiler ve onu Java için yeniden hedeflediler ve kısa bir süre sonra yeni bir şey yapmam için beni işe aldılar Sanal makineleri için JIT.
  4. ^ Lewis, J.P. (2004). "C ++ ile Java'nın Performansı". Arşivlenen orijinal 2020-04-24 tarihinde. Alındı 2007-10-03.
  5. ^ Shankland, Stephen (18 Şubat 1999). "HotSpot nihayet damgasını vurdu". Cnet.
  6. ^ "Sun Microsystems, bugüne kadarki en hızlı istemci tarafı Java platformunu yayınladı". Sun Microsystems. 2000-05-08. Alındı 2007-10-03.
  7. ^ "Java ™ HotSpot Sanal Makine Performans İyileştirmeleri". docs.oracle.com.
  8. ^ "Java ™ HotSpot Sanal Makine Performans İyileştirmeleri". docs.oracle.com.
  9. ^ "HotSpot Grubu". Sun Microsystems. 2007. Alındı 2007-10-03. Yaklaşık 250.000 satır kod içeren yaklaşık 1500 C / C ++ başlık ve kaynak dosyası vardır
  10. ^ "Ana - ZGC". OpenJDK Wiki.
  11. ^ "HotSpot Sanal Makine Çöp Toplama Ayarlama Kılavuzu (Java 14)". Oracle Yardım Merkezi.
  12. ^ "Java HotSpot Sanal Makine Seçenekleri". Sun Microsystems. Alındı 2009-02-08.
  13. ^ Mocker, Joseph D. (2007-08-28). "JVM Seçenekleri Koleksiyonu". Arşivlenen orijinal 2011-04-30 tarihinde. Alındı 2009-02-08.
  14. ^ Maximovich, Dmitri. "Java 6 JVM için -XX seçeneklerinin en eksiksiz listesi". Arşivlenen orijinal 2010-01-30 tarihinde. Alındı 2009-02-08.
  15. ^ Nutter, Charles (2009/01/29). "En Sevdiğim Hotspot JVM Bayrakları". Alındı 2009-02-08.
  16. ^ "Sun Open Sources Java Teknolojisi ve NetBeans ve Java.net Toplulukları Aracılığıyla GPL Sürüm İki Lisansı Kapsamında Kaynak Kodunu Yayınladı". Sun Microsystems. 2006-11-13. Arşivlenen orijinal 2009-02-09 tarihinde. Alındı 2017-05-06.
  17. ^ JDK7, Paz.
  18. ^ "Oracle JDK 8 ve JRE 8 Sertifikalı Sistem Yapılandırmaları". Oracle Corporation. Alındı 2017-05-18.
  19. ^ Gary, Benson (2007-11-06). "Gary'nin IcedTea'yı taşıma rehberi". Arşivlenen orijinal 2012-07-12 tarihinde. Alındı 2008-01-26.
  20. ^ Gary, Benson (2008-02-01). "1 Şubat 2008". Arşivlenen orijinal 2012-07-10 tarihinde. Alındı 2008-02-03.
  21. ^ Andrew, Haley (2008-01-31). "Zero-assembler'ı ppc'de varsayılan yapma". Alındı 2008-02-03.
  22. ^ Lilian, Melek (2008-02-13). "IcedTea 1.6, Zero-assembler ve JNLP desteği ile yayınlandı!". Kırmızı şapka. Alındı 2008-02-13.

Dış bağlantılar