機答:英特爾i5-2400,操作系統是Windows 7企業版64位xeon比i5慢?
機B:英特爾至強-E5620,OS是CentOS的5.9
現在,當我運行Java程序(包括Java版本是1.7)除了產生1000000個隨機數(Math.random)之外什麼都不做。結果是,機器A只佔機器B所花費時間的50%。
我在這裏錯過了什麼嗎?
機答:英特爾i5-2400,操作系統是Windows 7企業版64位xeon比i5慢?
機B:英特爾至強-E5620,OS是CentOS的5.9
現在,當我運行Java程序(包括Java版本是1.7)除了產生1000000個隨機數(Math.random)之外什麼都不做。結果是,機器A只佔機器B所花費時間的50%。
我在這裏錯過了什麼嗎?
我在這裏錯過了什麼嗎?
是的,你錯過了你完全有兩個不同的操作系統平臺,他們自己的操作系統的java環境(儘管版本匹配),並且想要相信這全都歸功於CPU。在兩個系統上安裝相同的操作系統,然後進行比較,您會更清楚地看到任何硬件性能差異。現在,你在猜測。
是的,也許它是windows jvm VS linux jvm,或者它只是i5&xeon的單核心性能。我只是不確定哪一個是答案。 – 2013-03-13 08:08:33
我同意。這就是爲什麼我建議在兩個硬件上放置相同的軟件設置並縮小它。 – 2013-03-13 08:10:22
隨機數的產生很可能只取決於時鐘速度:代碼非常小,適合緩存,幾乎沒有任何內存訪問(它是單核計算)。我不熟悉的Xeon系列的具體情況,但:
你已經30%贊成的i5這裏。
然後,你忘了提及:CentOS是32位還是64位版本?這可能會造成很大的變化。
最後,我想說很難真正比較測試,因爲即使您在兩臺機器上都安裝了完全相同的Java版本,我也會感到驚訝的是,相同的代碼用於Linux和Windows版本。
好Centos是64位。這裏有兩種可能的解釋,一種是CPU的時鐘速度,另一種是jvm VS linux版本的windows版本。 – 2013-03-13 08:07:07
你可能想要一個比這更微妙的基準。 – 2013-03-13 08:18:01