更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动
Zing虛擬機(jī)文檔Understanding Java Garbage Collection(了解Java垃圾收集)
首先說明這個Zing是收費(fèi)的,但是他也是優(yōu)秀的,我覺得我們可以研究下他的一些思想對于怎么提高JVM,以及目前的JVM有什么缺陷是非常有幫助的。
中文版簡介:https://cn.azul.com/
?
Zing的優(yōu)勢:
1)更好的性能
支持 Zing 的 Falcon JIT 編譯器是使用 LLVM 技術(shù)構(gòu)建的,其可提供深入的優(yōu)化。
2)無停頓執(zhí)行
Azul 解決了Java 的垃圾回收問題。停止和應(yīng)用程序超時、GC 停頓、停滯和抖動周旋。
3)更快速啟動
憑借 ReadyNow!? 技術(shù),Java 應(yīng)用程序啟動速度快,且能保持高速運(yùn)行。
?
Zing:虛擬機(jī)
?
Zing FAQ:
https://www.azul.com/products/zing/zinqfaq/
下面是我結(jié)合谷歌翻譯后再適當(dāng)修改了下的FAQ,刪掉了購買等和技術(shù)無關(guān)的部分:
什么是Zing??
Zing是一個兼容并符合Java SE規(guī)范的JVM。Zing針對Linux和x86進(jìn)行了優(yōu)化。Zing專為需要大內(nèi)存,高事務(wù)率,一致響應(yīng)時間或高持續(xù)吞吐量的任意組合的企業(yè)應(yīng)用程序和工作負(fù)載而設(shè)計(jì),是唯一能夠提供與堆大小無關(guān)的可預(yù)測響應(yīng)時間的JVM。
Zing與傳統(tǒng)JVM在部署Java應(yīng)用程序方面有何不同?
Zing是一個高度優(yōu)化的 JVM和彈性運(yùn)行時,它打破了傳統(tǒng)的Java規(guī)模障礙,并為Java應(yīng)用程序,規(guī)模和吞吐量提供了數(shù)量級的改進(jìn)。Zing發(fā)行版包括一個非侵入式,生產(chǎn)時應(yīng)用程序可見性工具,稱為Zing Vision(ZVision)。
借助ZVision,IT組織首次擁有零開銷,細(xì)粒度的可見性工具,可幫助發(fā)現(xiàn)問題并加速解決難以捉摸的生產(chǎn)問題。
Zing是另一個JVM嗎?
Zing是一個更好的 JVM,它利用先進(jìn)技術(shù)為主流Java應(yīng)用程序提供更高的性能。我們的大多數(shù)客戶不需要巨大的Java堆或超低延遲 - 他們只是希望他們的Java應(yīng)用程序可靠地運(yùn)行。Zing通過Azul C4提供這些優(yōu)勢 ??(Continuously Concurrent Compacting Collector)?(連續(xù)并發(fā)壓縮收集器)消除了限制所有傳統(tǒng)JVM可擴(kuò)展性的“stop-the-world”(“全局停頓”)。由于單實(shí)例可以擴(kuò)展到幾千兆字節(jié)到多達(dá)8TB內(nèi)存,因此Zing可以顯著減少支持企業(yè)應(yīng)用程序或多租戶SaaS / PaaS解決方案所需的實(shí)例總數(shù),從而簡化部署,顯著提高響應(yīng)時間一致性并降低運(yùn)營支出和資本支出。Zing還附帶ReadyNow!解決Java預(yù)熱問題的技術(shù),允許您的應(yīng)用程序快速啟動并保持快速。
Zing如何提供比其他JVM更好的性能?
Zing消除了“stop-the-world”(“全局停頓”)式的垃圾收集,其他JVM限制了這樣的可擴(kuò)展性,因此每個Zing實(shí)例可以擴(kuò)展到8TB的堆內(nèi)存。Zing還使用高度優(yōu)化的即時(JIT)編譯器,默認(rèn)使用分層編譯。
傳統(tǒng)的Java熱身問題由Zing的ReadyNow解決!允許應(yīng)用程序快速啟動并保持快速運(yùn)行的技術(shù),允許運(yùn)營團(tuán)隊(duì)在運(yùn)行之間保存和重用累積的編譯器優(yōu)化,并避免在工作負(fù)載或條件發(fā)生變化時可能減慢處理速度的去優(yōu)化停頓。
什么是Zing Vision?
Zing Vision是一個安裝在Zing里的零開銷,永遠(yuǎn)在線的線上監(jiān)控,診斷和調(diào)整工具。
Zing總是收集數(shù)據(jù)作為其必須完成的工作的輔助任務(wù),這使得系統(tǒng)管理員可以通過Zing Vision利用這些信息,而不必?fù)?dān)心影響正在運(yùn)行的應(yīng)用程序。
Zing如何解決Java熱身問題(Java warm up)?
Zing使用Azul創(chuàng)新的ReadyNow!? 技術(shù)來解決熱身問題。ReadyNow專為低延遲系統(tǒng)而設(shè)計(jì)!允許Java應(yīng)用程序在啟動時實(shí)現(xiàn)最佳性能和一致性,并最大限度地減少負(fù)載條件發(fā)生變化時可能發(fā)生的破壞優(yōu)化。
為什么要介紹Zing的名為“Falcon”的新編譯器?
Falcon JIT編譯器的開發(fā)是為了確保Java開發(fā)人員和基于Java的企業(yè)能夠從當(dāng)今的服務(wù)器硬件中獲取最大性能。
Falcon JIT編譯器基于什么技術(shù)?
Falcon JIT編譯器基于LLVM技術(shù),這是一個受歡迎的編譯器基礎(chǔ)設(shè)施項(xiàng)目,得到了一流大學(xué)和包括Adobe,Apple,Google,NVIDIA和Intel在內(nèi)的數(shù)十家企業(yè)貢獻(xiàn)者的積極參與。
Falcon比C2更快嗎?
是。
Falcon支持哪些版本的Java?
Falcon適用于使用Java SE 7和Java SE 8構(gòu)建的應(yīng)用程序。作為功能預(yù)覽,Falcon還可以與Java SE 10和11一起使用(即將推出)
Zing如何支持大堆大小以及它是如何彈性的?
Zing允許Java應(yīng)用程序利用他們需要執(zhí)行的任何數(shù)量的內(nèi)存,僅受系統(tǒng)中物理內(nèi)存或虛擬機(jī)管理程序可識別的數(shù)量的限制。
由于Zing獨(dú)特的垃圾收集器,基于Azul的開創(chuàng)性C4 (連續(xù)并發(fā)壓縮收集器)技術(shù),GC暫停與JVM堆的大小無關(guān),并且不限制應(yīng)用程序可伸縮性。
此外,Zing還包括一項(xiàng)專利創(chuàng)新的“內(nèi)存池”(即內(nèi)存儲備),允許JVM根據(jù)實(shí)時需求動態(tài)增加內(nèi)存占用量; 當(dāng)需求減少時,Zing將此內(nèi)存返回給系統(tǒng)。
此內(nèi)存預(yù)留不僅可確保在高負(fù)載下保持一致的性能,而且可以充當(dāng)因錯誤或編碼錯誤而遇到“內(nèi)存泄漏”的JVM的緊急內(nèi)存。
什么是Zing ReadyNow!??
ReadyNow!是Zing運(yùn)行時內(nèi)置的技術(shù),可以很好地解決Java熱身問題。
他有兩個主要特點(diǎn):
首先,它使運(yùn)營團(tuán)隊(duì)能夠跨運(yùn)行保存和重用編譯器優(yōu)化。
第二,ReadyNow!為開發(fā)人員提供強(qiáng)大的API和編譯器指令,以預(yù)編譯常用的代碼或必須快速的方法,即使它們不經(jīng)常被調(diào)用。
Zing如何提供無間斷操作?
Zing默認(rèn)使用Azul C4垃圾收集器。無論堆大小如何,C4收集器都在不斷地進(jìn)行壓縮,并且永遠(yuǎn)不會使用“stop-the-world”(“全局停頓”)的暫停來進(jìn)行垃圾收集。
什么是C4垃圾收集器?
該C4(連續(xù)并行壓縮收集器) ?是一個更新的代執(zhí)行Azul Pauseless GC算法,是Zing的默認(rèn)垃圾收集器。
Zing能幫助解決數(shù)據(jù)庫爭用嗎?
是。使用較少的應(yīng)用程序?qū)嵗?#xff0c;您的數(shù)據(jù)庫可以看到更少的連接和更少的爭用
Zing是否已經(jīng)使用各種Java應(yīng)用程序進(jìn)行了測試?
是。對于每個版本,我們測試各種應(yīng)用程序堆棧(包括Wildfly,Active MQ,Cassandra,WebLogic Server,WebSphere Application Server,JBoss和Tomcat),以及其他開源軟件和第三方應(yīng)用程序。?
企業(yè)主為什么要關(guān)心Zing?
Java應(yīng)用程序通常是關(guān)鍵業(yè)務(wù)和關(guān)鍵任務(wù)。影響收入和使用的性能和可伸縮性問題通常不是由應(yīng)用程序,數(shù)據(jù)庫或網(wǎng)絡(luò)引起的,而是通常與JVM的選擇有關(guān)。
通過選擇Zing,您可以消除意外長時間的用戶等待時間和內(nèi)存不足崩潰,從而捕獲收入和客戶的損失,并在需求突然出現(xiàn)時提供一致的用戶體驗(yàn)。
?
Azul C4垃圾收集器
大多數(shù)垃圾收集器的主要缺點(diǎn)是需要長時間的應(yīng)用程序暫停。這些暫停是不可避免的要求壓縮堆以釋放空間的結(jié)果。收集器使用不同的策略來延遲這些事件,但是除了使用連續(xù)并發(fā)壓縮收集器的Azul C4垃圾收集器之外,所有商業(yè)可用收集器都不可避免地壓縮。
C4(連續(xù)并發(fā)壓縮收集器)是Azul Pauseless GC算法是Zing?的默認(rèn)收集器。 C4通過支持同時生成并發(fā)來區(qū)別于其他世代垃圾收集器:使用可以同時且獨(dú)立活動的并發(fā)(非停頓)機(jī)制收集不同代。與其他算法不同,它不是“大部分”并發(fā),而是完全并發(fā),所以它永遠(yuǎn)不會回到?stop-the-world?的壓縮。
垃圾收集器摘要如下。有關(guān)術(shù)語的更多信息以及有關(guān)收集器的更多詳細(xì)信息,請閱讀Understanding Java GC白皮書。
垃圾收集(GC)是Java平臺上應(yīng)用程序行為的一個組成部分。Java開發(fā)人員可以通過了解GC的工作原理以及更好地選擇垃圾收集器來提高應(yīng)用程序性能,可伸縮性和可靠性。
更多資源:
關(guān)于Azul C4收集器的技術(shù)白皮書?
*請注意,使用IBM的J9和Oracle的JRockit,您可以選擇使用單代或2代垃圾收集器
ReadyNow!? - 啟動更快,保持快速
解決Java熱身問題?
專為基于Java的應(yīng)用程序而設(shè)計(jì),必須滿足特定的服務(wù)級別
幫助開發(fā)人員管理Java的運(yùn)行時去優(yōu)化
減少CPU資源消耗?
允許保存和重復(fù)使用累積的編譯器優(yōu)化配置文件
為開發(fā)人員提供對Java編譯的更多控制
減少因合成測試或“假”數(shù)據(jù)的需要而導(dǎo)致的運(yùn)行預(yù)熱風(fēng)險
在市場開放等關(guān)鍵時刻確保一致的峰值性能
允許Java快速啟動并保持快速
要了解有關(guān)ReadyNow的更多信息!?特性和功能,下載 數(shù)據(jù)表
了解更多有關(guān)Azul的ReadyNow的信息!?技術(shù)在?InfoQ采訪阿祖爾首席技術(shù):Azul ReadyNow!尋求消除JVM熱身
Java“熱身”問題的背后:
基于Java的系統(tǒng)在運(yùn)行編譯和優(yōu)化代碼時可提供出色的性能。但是,JVM需要時間來“預(yù)熱”或優(yōu)化常用代碼,因此應(yīng)用程序可以以最快的速度運(yùn)行。?
為什么會這樣? Java旨在快速啟動,然后根據(jù)實(shí)際使用情況提高性能。JVM的即時(JIT)編譯器(如Zing的Falcon編譯器)依賴于描述應(yīng)用程序的哪些部分被稱為最多(“熱”代碼)的配置文件數(shù)據(jù)。
JIT編譯允許JVM優(yōu)化性能,但這可能需要時間。在資本市場等用例中,通常系統(tǒng)會“熱身”以提供最佳性能。雖然Java應(yīng)用程序通常需要一段時間才能啟動,但是當(dāng)打開鈴聲響起時,它必須準(zhǔn)備好進(jìn)行全面優(yōu)化。
當(dāng)前的Java預(yù)熱策略:
需要最佳Java性能和一致性的公司(如金融服務(wù)公司)已經(jīng)嘗試了多種方法來加熱JVM,例如模擬測試數(shù)據(jù),“虛假”交易,甚至是市場開放時的小型實(shí)時交易。
在其他問題中,這些策略可能會引入操作風(fēng)險,即“虛假”數(shù)據(jù)可能會泄漏到“真實(shí)”交易日,或者實(shí)際情況可能與用于預(yù)熱JVM的方案不同。有效的策略需要復(fù)制真正的端到端行為。
如果條件發(fā)生變化,Java會恢復(fù)為已解釋的代碼,這種情況稱為“去優(yōu)化”,這會使性能降低到爬行速度,直到重新編譯和重新優(yōu)化關(guān)鍵方法。Azul的ReadyNow!技術(shù)提供兩個關(guān)鍵功能。首先是運(yùn)營團(tuán)隊(duì)能夠跨運(yùn)行保存和重用累積的優(yōu)化配置文件。第二個是一組強(qiáng)大的API和編譯器指令,使開發(fā)人員能夠更好地控制JVM去優(yōu)化的時間和影響。
解決方案:ReadyNow!?AzulSystems的技術(shù):
好了!?是用于Java的Zing運(yùn)行時內(nèi)置的技術(shù)。它允許基本系統(tǒng)在交易日開始時實(shí)現(xiàn)最佳性能和一致性。常見的熱身技術(shù)有時會針對錯誤的條件進(jìn)行優(yōu)化,Zing的ReadyNow!
當(dāng)“真實(shí)”交易與用于預(yù)熱的配置文件不同時,技術(shù)可以防止大多數(shù)去優(yōu)化。有了ReadyNow!運(yùn)營團(tuán)隊(duì)可以從一天或一組市場條件中節(jié)省累積的優(yōu)化,以便以后重復(fù)使用。
此外,開發(fā)人員可以更好地控制Java編譯,包括API,配置指令,策略控制以及對“未實(shí)現(xiàn)”代碼處理的改進(jìn)。ReadyNow專為低延遲系統(tǒng)而設(shè)計(jì)!技術(shù)使Java應(yīng)用程序從開幕式開始就能快速上市 - 并且它們保持快速。
?
垃圾收集(GC)調(diào)整
為什么垃圾收集(GC)調(diào)整?
大多數(shù)垃圾收集器必須停止應(yīng)用程序處理?(“stop-the-world”)以確定哪些對象仍在使用中,這些對象可以被垃圾收集以及對內(nèi)存堆進(jìn)行碎片整理和壓縮。暫停時間隨內(nèi)存堆大小線性增加,因此大堆可能導(dǎo)致用戶明顯延遲和應(yīng)用程序性能不佳。
GC調(diào)整 - 一些基礎(chǔ)知識
調(diào)整垃圾收集所花費(fèi)的大部分時間都是為了延遲壓縮。由于大多數(shù)物體都很年輕,因此可以在年輕一代上進(jìn)行垃圾收集一段時間,但最終需要回收舊的沒用的對象。可以通過跟蹤舊的gen對象被刪除的位置并使用釋放的內(nèi)存來進(jìn)一步延遲完整的GC。但是,在某些時候,這個空間將變得支離破碎,需要回收。您可以嘗試通過調(diào)整盡可能地延遲垃圾收集,但實(shí)際情況是您不能永遠(yuǎn)延遲它。
消除垃圾收集暫停和GC調(diào)整的需要
Zing虛擬機(jī)使用 Azul創(chuàng)新的C4收集器,可提高應(yīng)用程序性能,無需進(jìn)行大多數(shù)GC調(diào)整。使用Zing,應(yīng)用程序可在堆和GC設(shè)置的廣泛,平穩(wěn)操作范圍內(nèi)始終如一地執(zhí)行。另一個關(guān)鍵的好處是“你測試的是你得到的東西”,因此生產(chǎn)中的性能與測試的性能相匹配。
C4是一種高度并發(fā),一致的算法,能夠同時壓縮Java堆,并允許應(yīng)用程序在執(zhí)行內(nèi)存重映射時繼續(xù)執(zhí)行。其他JVM需要“停止世界”暫停才能完全壓縮堆。請參閱下面的Zing GPGC和HotSpot JVM CMS的比較。
HotSpot JVM CMS與Zing Pauseless垃圾收集的比較:
Hotspot JVM? CMS
年輕代:會停頓。
年老代:大部分是并發(fā)的,非壓縮的
? ? ? ├主要是并發(fā)標(biāo)記
? ? ? ?? ? ? ├在mutator運(yùn)行時同時標(biāo)記,
? ? ? ? ? ? ? ├跟蹤卡片標(biāo)記中的突變,
? ? ? ? ? ? ? ├重新訪問變異卡片(根據(jù)需要重復(fù)),
? ? ? ? ? ? ? └停頓Stop-the-world以趕上突變,ref處理等。
? ? ? ?├并發(fā)打掃
? ? ? ?└不壓縮(維護(hù)空閑列表,不移動對象)
FGC:停頓Stop-the-world
而Azul? PGC 總之是并發(fā),壓縮,且沒有停頓的!
Java堆大小
Java堆是分配給在JVM中運(yùn)行的應(yīng)用程序的內(nèi)存量。堆內(nèi)存中的對象可以在線程之間共享。
由于垃圾收集暫停,傳統(tǒng)JVM中Java堆大小的實(shí)際限制通常約為2-8 GB。許多類型的應(yīng)用程序都可以從非常大的堆中受益,例如內(nèi)存計(jì)算,NoSQL數(shù)據(jù)庫,大數(shù)據(jù) 應(yīng)用程序,分析,Web個性化和電子商務(wù)。
一個100GB的堆不會在典型的JVM上崩潰,它會一次定期暫停幾分鐘。這限制了應(yīng)用程序性能和可伸縮性,并阻止Java應(yīng)用程序使用當(dāng)今商用服務(wù)器的全部資源。
如果可以消除相關(guān)的性能問題,非常大的堆大小通常非常實(shí)用。Azul的Zing?是解決Java的垃圾回收問題,并允許堆多達(dá)8TB沒有性能損失的第一個JVM。
更大的Java內(nèi)存堆:
允許創(chuàng)建更多對象;
填充需要更長時間;
允許應(yīng)用程序在垃圾收集(GC)事件之間運(yùn)行更長時間。
較小的Java內(nèi)存堆:
保留較少的對象;
填寫更快;
是否更頻繁地收集垃圾(但暫停時間較短);
可能導(dǎo)致內(nèi)存不足錯誤。
2-8GB的內(nèi)存堆是否足以滿足大多數(shù)Java應(yīng)用程序的需求?
我們已經(jīng)找到了大量證據(jù)表明對更多堆的需求被壓抑了:
機(jī)器內(nèi)“橫向尺度”的常見用途
使用“外部”內(nèi)存和不斷增長的數(shù)據(jù)集(更大的數(shù)據(jù)庫以及使用外部數(shù)據(jù)緩存,如memcached,JCache和JavaSpaces)
持續(xù)研究永無止境的分配問題
問題出在軟件堆棧中,它會對每個實(shí)例的內(nèi)存施加人為約束。
GC暫停時間是實(shí)例大小的唯一限制因素,正如我們在實(shí)踐中發(fā)現(xiàn)的那樣,即使是廣泛的垃圾收集(GC)調(diào)整也不會讓它消失。
一旦你解決了GC,你就解決了這個問題。Azul的創(chuàng)新C4垃圾收集算法是完全并發(fā)的,消除了非常大堆的性能影響。
?
JVM調(diào)優(yōu)
JVM調(diào)優(yōu):主要指內(nèi)存堆大小和垃圾收集(GC)調(diào)優(yōu)。?
如果您正在尋找有關(guān)Zing調(diào)整標(biāo)志的特定信息,請查看ZVM命令行選項(xiàng)下的在線Zing文檔。
內(nèi)存堆大小
對于大多數(shù)JVM,調(diào)整堆大小需要分析應(yīng)用程序如何使用內(nèi)存,更改參數(shù)和重新分析。應(yīng)用程序需要盡可能靠近生產(chǎn)負(fù)載運(yùn)行。這是特別難以做到的,因?yàn)樵趯?shí)驗(yàn)室中不會看到一些現(xiàn)實(shí)中出現(xiàn)的負(fù)載。大多數(shù)JVM使您能夠設(shè)置初始堆大小(-Xms)和最大堆大小(-Xmx),但有些也允許其他參數(shù),如大頁。如果堆大小設(shè)置得太大,垃圾收集暫停會變得太長; 如果堆大小設(shè)置得太小,應(yīng)用程序?qū)伋鰞?nèi)存不足錯誤并可能崩潰。因此,內(nèi)存和GC調(diào)優(yōu)是影響應(yīng)用程序性能的密切相關(guān)主題。
Zing?消除了大部分JVM調(diào)整的需要。Zing支持堆內(nèi)存的“銀行系統(tǒng)” (?‘banking system’ ),允許運(yùn)行時實(shí)例根據(jù)需要可靠地增長和縮小內(nèi)存堆。Zing可以以多個GB /秒的速度在實(shí)例之間轉(zhuǎn)移物理資源。不必將內(nèi)存堆調(diào)整“完全正確”可以節(jié)省大量時間。您可以專注于為業(yè)務(wù)增加更多價值并啟動新計(jì)劃,而不是花時間調(diào)整和重新調(diào)整Java基礎(chǔ)架構(gòu)以修復(fù)生產(chǎn)故障。
此外,該平臺還包括Zing Vision,一種零開銷,始終在線監(jiān)控,調(diào)整和可視性工具。使用Zing Vision,您可以快速啟動應(yīng)用程序,從而加快產(chǎn)品上市速度并隨時調(diào)整生產(chǎn)。下面是傳統(tǒng)JVM和Zing的實(shí)際JVM調(diào)整參數(shù)的示例。
?介紹Falcon JIT編譯器
Zing的Falcon JIT編譯器
在將近二十年之后,Java有了一個新的實(shí)時(JIT)編譯器,它只能在Zing運(yùn)行時中用于Java。 Azul Systems構(gòu)建了Falcon JIT編譯器,以確保Java開發(fā)人員和基于Java的企業(yè)能夠從當(dāng)今的服務(wù)器硬件中獲取最大性能。
Falcon JIT編譯器與Azul的無暫停垃圾收集技術(shù)以及ReadyNow完全集成!技術(shù),解決了延遲敏感應(yīng)用程序中Java的預(yù)熱問題。
LLVM ?- Falcon JIT背后的技術(shù)
Falcon JIT編譯器基于LLVM技術(shù),這是一個受歡迎的編譯器基礎(chǔ)設(shè)施項(xiàng)目,得到了一流大學(xué)和包括Adobe,Apple,Google,NVIDIA和Intel在內(nèi)的數(shù)十家企業(yè)貢獻(xiàn)者的積極參與。
今天,LLVM被用于Java和JVM之外的各種編程語言和框架,包括Swift和Rust等新平臺以及許多其他平臺,包括C / C ++,Objective-C,Swift,Clang,OpenCL,CUDA等等。
LLVM被認(rèn)為是最先進(jìn)的編譯器技術(shù),LLVM社區(qū)不斷采用新的優(yōu)化技術(shù)并支持新的處理器指令集和硬件平臺。
使用Zing的新Falcon JIT編譯器運(yùn)行時,Java工作負(fù)載的性能優(yōu)勢具有顯著的業(yè)務(wù)優(yōu)勢:
更好的應(yīng)用程序服務(wù)級別指標(biāo):減少延遲,減少超時,提高一致性;
更好的客戶體驗(yàn):即使在不可預(yù)測的負(fù)載下也能可靠地實(shí)現(xiàn)客戶期望,提高客戶滿意度;
降低運(yùn)營成本:減少內(nèi)存占用要求,提高云/ AWS部署中類似大小的實(shí)例的承載能力;
降低開發(fā)成本:實(shí)現(xiàn)所需性能,一致性和規(guī)模所需的工程時間更短.
問:Zing什么時候和Falcon一起發(fā)貨?
答:Falcon JIT已與Zing一起運(yùn)行了幾個月。從版本17.03開始,Falcon是Zing的默認(rèn)JIT編譯器,取代了傳統(tǒng)的C2編譯器。
問:Falcon JIT比C2更快嗎?
答:是的。
問:Zing還支持C2嗎?
答:是的,可以通過在JVM啟動時指定標(biāo)志來使用C2。
問:我是否需要重新編譯現(xiàn)有的應(yīng)用程序以使用Falcon?
答:不用。
問:Falcon支持哪些版本的Java?
答:Falcon適用于使用Java SE 7和Java SE 8構(gòu)建的應(yīng)用程序。
問:Falcon會支持Java 9嗎?
答:是的,在Zing的未來版本中。
總結(jié)
以上是生活随笔為你收集整理的更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海信85寸xdr如何辨真伪?
- 下一篇: Redis源码和java jdk源码中h