Java HotSpot VM 性能引擎架構

概述

Java HotSpot™虛擬機實現Sun Microsystems公司的高性能虛擬機的Java平臺, 平臺的應用環境從頭到如今,依然有不少的應用存在: 從信用卡到無線設備,桌面到大型機等小程序

Java HotSpot VM基於Java技術的跨平臺支持和安全模型,具備可擴展性,質量和性能的新特性和功能。 除了新功能外,此版本還與之前的版本向上兼容設計模式

Java HotSpot VM支持企業應用程序的開發,部署和管理的全部方面,而且用於:安全

  • 集成開發環境(IDE),包括Sun Java Studio工具,NetBeans開源項目,IBM的Eclipse,IntelliJ IDEA,Oracle JDeveloper等
  • 應用服務器廠商,如Sun Java系統應用服務器,BEA系統公司的WebLogic軟件,IBM的WebSphere軟件,蘋果電腦公司的軟件的WebObjects等等

目前的話,IntelliJ IDEA工具仍是比較火的,一樣知足需求的請求下,coder們也追求快感和美感服務器

 

Sun Microsystems公司也經過使用各類行業標準和內部開發的基準測試性能的改進, 這些改進適用於客戶端和服務器端Java VM環境多線程

Java標準版平臺包含了Java虛擬機的兩個實現:架構

  • Java HotSpot Client VM,經過減小應用程序啓動時間和內存佔用,在客戶端環境中運行應用程序時能夠得到最佳性能
  • Java HotSpot Server VM,旨在最大限度地提升服務器環境中運行的應用程序的執行速度


Java HotSpot VM架構 概觀

Java HotSpot虛擬機是Sun用於Java平臺的VM。 它使用許多先進技術爲Java應用程序提供最佳性能,包括最早進的內存模型,垃圾收集器和自適應優化器。 它以高級,面向對象的風格編寫,並具備如下特色:工具

  • 統一對象模型性能

  • 解釋,編譯和本地幀都使用相同的堆棧學習

  • 基於本地線程的搶佔式多線程測試

  • 高效的垃圾回收機制

  • 超快速線程同步

  • 動態的優化和快速的編譯器優化

  • 在VM啓動時生成的系統特定的運行時程序

  • 支持並行編譯的編譯器接口

  • 運行時分析只關注"熱"方法的編譯工做

JDK包括兩種VM - 一種是客戶端產品,另外一種是針對服務器應用程序調整的VM。 這兩個解決方案共享Java HotSpot運行時環境代碼庫,但使用適合客戶端和服務器獨特性能特徵的不一樣編譯器。 這些差別包括編譯內聯策略和堆默認值

JDK在發行版中包含這兩個系統,所以咱們能夠經過指定-client或-server來選擇想要的系統

用了這麼久的JDK,尷尬,才知道,另外發現大多數的系統層級或載體組件,都有着相同,或者說相似的架構設計模式

 

雖然服務器和客戶端虛擬機相似,但服務器虛擬機已通過專門調整,以最大限度地提升峯值運行速度。 它旨在執行長時間運行的服務器應用程序,這些應用程序須要儘量快的運行速度,而不是快速啓動時間或較小的運行時內存佔用

客戶端VM編譯器用做經典VM和先前版本的JDK使用的實時(JIT)編譯器的升級。 客戶端VM爲應用程序和小程序提供了改進的運行時性能。 Java HotSpot客戶端VM通過專門調整,可縮短應用程序啓動時間和內存佔用,使其特別適合客戶端環境。 一般,客戶端系統更適合GUI

Client VM編譯器不會嘗試執行服務器VM中編譯器執行的許多更復雜的優化,但做爲交換,它須要更少的時間來分析和編譯一段代碼。 這意味着客戶端VM能夠更快地啓動而且須要更小的內存佔用

Server VM包含一個高級自適應編譯器,它支持經過優化C++編譯器執行的許多相同類型的優化,以及傳統編譯器沒法完成的一些優化,例如跨虛擬方法調用的積極內聯。 與靜態編譯器相比,這是一種競爭優點和性能優點。 自適應優化技術的方法很是靈活,一般甚至優於高級靜態分析和編譯技術

這兩種解決方案都可提供極其可靠,安全且可維護的環境,以知足的需求

 

粗略的VM架構認識就到這裏,繼續學習 Memory Model--內存模型

----------------------------------------------------------------

相關文章
相關標籤/搜索