Q:

Why does my program run at drastically different speeds on different computers?

So I sent a friend a copy of my implementation of Conway's Game of Life. When he received it, he complained that my application [on the super-sampled grid size, with 0 delay] was barely getting 1 generation/second. I responded that on my computer, with approximately the same amount of filled grid spaces, I was getting around 38 generations/second. I couldn't attribute this disparity to different monitor sizes, as mine was more or less the same size, and the grids were therefore similarly sized. I ran my program from the jar as well, for consistency's sake.
Here's the kicker: His computer is running an AMD Phenom II X6 1090T processor @ 3.2 Ghz (6-cores), with eight GB of RAM. My computer is running i7-4700MQ @ 2.4 Ghz (quad-core), and 8 GB of RAM. He also has an Nvidia Ge-Force GT 440, vs. my intel integrated graphics.
It is beyond me how my computer can so profoundly outperform his, despite being inferior in every statistic. Does anyone know what could cause this? I am guessing it's something to do with the differences in processor architecture, but I'm no expert. Below is a link to the GitHub page for my project, in case you want to compile and test it yourself.
https://github.com/JoeAzar/CGOL-v1.3.2/tree/master

A:

Does anyone know what could cause this? I am guessing it's something to do with the differences in processor architecture, but I'm no expert.

Well I'm only guessing too, but it could be things like:

Different operating systems
Different versions / releases of Java
32 bit versus 64 bit issues, at the JVM or OS level.
Different JVM parameters; e.g. those that affect heap size.
Differences in paging disk speed / latency (if the application is paging).
Other stuff running on the machine (e.g. resource hogging AV software)

It could also be processor architecture related ... as you postulated ... though I'd put that well down the list of possible reasons.

