簡體   English   中英

Java應用程序Windows與Mac OS X.

[英]Java Application Windows vs Mac OS X

我在一個解析XML文件的小型Windows桌面上開發了一個java應用程序。 我遇到了一個非常有趣的觀察,我非常好奇。

我為我的應用程序生成了一個可執行jar,並在非常強大的Windows Server機器上運行它。 它有2個物理Xeon處理器,每個8核,主頻為2.7 GHz,50GB RAM和7200 RPM硬盤。 我啟動應用程序時機器處於空閑狀態,我很確定沒有其他應用程序與我共享機器。

后來,我在我的Macbook Pro上運行可執行文件,以便看到它的行為。 我的個人機器是Core i7,主頻為2.2 GHz,配備4 GB RAM和5400 RPM HDD。

令人驚訝的是,應用程序在我個人較弱的機器上快了兩倍。 這是相同的輸入\\相同的輸出。 沒有IO但是為了讀取XML來解析它們,我在終端上沒有打印,但是開始時間\\結束時間和最終結果是一行

我很好奇理解這種戲劇性的表現差異背后的原因。 特別是來自硬件級別較弱的機器。 它是以更好的方式處理硬件的操作系統嗎? 是JVM工作得更好嗎?

在Windows上,JRE的默認安裝附帶HotSpot Client編譯器。 此編譯器僅執行基本優化,與服務器HotSpot相反,后者執行更積極的優化並生成更快的代碼。 服務器HotSpot是大多數類Unix和Linux發行版的默認設置,包括Mac OS X.這兩個編譯器之間的性能差異通常是2-3倍。 客戶端HotSpot主要針對桌面應用程序的更快啟動進行了優化,而不是針對長時間運行的流程的最佳性能。

要檢查您使用的編譯器,請發出以下命令:

java -version

在我的機器上它給出:

java version "1.6.0_45"
Java (TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
                        ^^^^^^  this

要在Windows上獲取Server HotSpot,您需要下載並安裝JDK,然后使用-server命令行開關運行程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM