Java 为什么我的程序在不同的计算机上以截然不同的速度运行?

Java 为什么我的程序在不同的计算机上以截然不同的速度运行?,java,processor,conways-game-of-life,cpu-architecture,Java,Processor,Conways Game Of Life,Cpu Architecture,所以我给一个朋友寄了一份我的康威生活游戏的副本。当他收到它时,他抱怨我的应用程序[在超级采样网格大小上,0延迟]几乎没有1代/秒。我回答说,在我的电脑上,填充的网格空间数量大致相同,我的速度大约是每秒38代。我不能将这种差异归因于不同的显示器尺寸,因为我的显示器尺寸大致相同,因此网格的尺寸相似。为了保持一致性,我也从jar运行了我的程序 关键是:他的计算机运行的是一个AMD Phenom II X6 1090T处理器,处理器为3.2 Ghz(6核),内存为8 GB。我的电脑运行的是i7-4700

所以我给一个朋友寄了一份我的康威生活游戏的副本。当他收到它时,他抱怨我的应用程序[在超级采样网格大小上,0延迟]几乎没有1代/秒。我回答说,在我的电脑上,填充的网格空间数量大致相同,我的速度大约是每秒38代。我不能将这种差异归因于不同的显示器尺寸,因为我的显示器尺寸大致相同,因此网格的尺寸相似。为了保持一致性,我也从jar运行了我的程序

关键是:他的计算机运行的是一个AMD Phenom II X6 1090T处理器,处理器为3.2 Ghz(6核),内存为8 GB。我的电脑运行的是i7-4700MQ@2.4 Ghz(四核)
,内存为8 GB。他还有一个Nvidia Ge Force GT 440,与我的英特尔集成图形相比

我无法理解为什么我的电脑能如此出色地超越他的电脑,尽管在每一项统计数据上都不如他的电脑。有人知道这是什么原因吗?我猜这与处理器架构的差异有关,但我不是专家。下面是我的项目的GitHub页面链接,以防您自己编译和测试它

有人知道这是什么原因吗?我猜这与处理器架构的差异有关,但我不是专家

我也只是猜测,但可能是这样的:

  • 不同的操作系统

  • Java的不同版本/发行版

  • 在JVM或操作系统级别,32位与64位的问题

  • 不同的JVM参数;e、 g.影响堆大小的因素

  • 分页磁盘速度/延迟的差异(如果应用程序正在分页)

  • 机器上运行的其他东西(例如占用资源的AV软件)


它也可能与处理器架构相关。。。正如你假设的。。。尽管我已经把这一点列在了可能的原因列表中。

比较这两台机器上的JVM版本可能也很有趣。这可能有很多原因。处理器架构不太可能是它。github项目不编译。即使在修复了文件名之后,它也需要缺少包
GraphingIV
@Alexei很抱歉,我不小心在那里留下了一些导入。现在应该可以工作了。@Dave你怎么这么说?他有Windows7,我有Windows8。相同的Java版本,都是64位的。至于其余的我不能说。我想,考虑到变量的数量,很难找到具体的原因。