2012-10-01 70 views
3

我用Java編寫了一個小程序,它對一百萬個隨機數進行除法運算,並計算在運行不同操作系統的同一臺機器上的除法運算的平均時間。在運行該程序後,我發現在Windows上,除法操作平均需要1.6 * 10^-5 ms,而在Linux(Ubuntu 12.04)上,需要的操作幾乎少於8個因子,即3.2 * 10^-6 ms。我不確定爲什麼Java程序在Ubuntu上運行得更快,而不是Windows。它只是司機的事情嗎?或者算術操作在Ubuntu上更加優化?在Linux和Windows上的算術運算執行速度

+0

您是否安裝了相同的Java版本?你在這兩個操作系統中使用相同的vmargs嗎?一個在客戶端運行,另一個在服務器VM中運行?另外,你確定區別來自分區而不是計算隨機數嗎? – Axel

回答

2

實際計算由處理器完成,它完全獨立於操作系統。

此外,java程序運行在一個虛擬的java機器上。

也許你有更多的線程運行在窗口上,所以程序得到的處理器時間更少。

1

時代本身是如此之小,差異不能(也不應該)衡量你這樣做的方式。有意義的數據只有在運行時間較長以及在同一硬件上才能達到。

+0

我嘗試了一億個數字,但結果相同。硬件在操作系統中是相同的。不確定,如果JRE在不同的操作系統上可能造成這種情況? – Shivam

0

是Dr B Advance OS類作業1.