机器B:Intel Xeon-E5620,操作系统是CentOS 5.9
现在,当我运行一个java程序(两个java版本都是1.7)时,除了生成1000000个随机数(Math.random)之外什么都不做。结果是,机器A只占机器B占用时间的50%。
我在这里错过了什么吗?
答案 0 :(得分:2)
我在这里错过了什么吗?
是的,您错过了您完全拥有两个不同的操作系统平台,并拥有适用于该操作系统的自己的Java环境(尽管版本匹配),并且想要相信这一切都归功于CPU。在两个系统上安装相同的操作系统,然后进行比较,您将更清楚地看到任何硬件性能差异。就像你猜的那样。
答案 1 :(得分:2)
随机数生成很可能仅取决于时钟速度:代码非常小,它适合缓存,几乎没有任何内存访问(并且它是单核计算)。我不熟悉Xeon家族的特殊性,但是:
你已经有30%赞成i5了。
然后,你忘了提到:CentOS是32位还是64位?这可能会产生很大的不同。
最后,我要说真的很难比较测试,因为即使你在两台机器上安装了完全相同的Java版本,我也会惊讶于Linux和Windows使用了相同的代码版本