2013-12-10 28 views
0

我在我的個人計算機上實現了Java應用程序。我的機器上的應用程序執行時間大約需要20秒。我遷移到了一臺服務器機器,其功率是我個人機器的10倍。不幸的是,應用程序在這臺服務器上執行兩次執行時間。我很確定這兩臺機器上的JVM版本和設置都是相同的,都可以作爲服務器而不是客戶端,並且都可以運行Windows 7虛擬機性能上的Java應用程序

我懷疑我的機器上的操作系統是本機操作系統,而服務器的操作系統運行在具有專用巨大內存和2個物理處理器的虛擬機上運行。我對嗎?在Windows虛擬機中運行Java應用程序是否會影響性能,儘管擁有10倍更強大的硬件?

+0

你需要更具體。什麼是更強大的10倍,是什麼使它更強大,你運行基準來確認? –

+0

這裏有太多的因素要給出具體的答案。一般而言,所有其他條件相同的情況下,由於VM管理器施加的開銷(您不指定使用哪一個),軟件將總是在虛擬化環境中運行得更慢。此外,在特定的VM管理器配置,硬件虛擬化設置等方面可能存在各種限制。您需要提供更多詳細信息。 – csvan

+2

對於單線程CPU限制任務,*沒有任何內容*比您的個人計算機強10倍。 –

回答

0

我有大量服務器系統(來自Sun)的第一手經驗,它具有巨大的併發I/O吞吐量,但每個特定的CPU核心是不如功能強大的比高端臺式機。您正在運行的任務很可能會以未優化的方式加載該系統。

另一方面,還有很多其他因素需要考慮,比如當您進行測量時系統的其他部分正在做什麼,您正在做什麼,JIT編譯器是否正確參與,等等。