This simple benchmark assesses the performance of a Java Runtime Environment on a typical GP problem.
This applet performs symbolic regression to find the function x + x2 + x3 + x4 given 10 data points (x = 0...9), with an operator pool of addition, subtraction, multiplication, division, and assignment, on a 4 register virtual CPU. The representation is linear machine code, the population size is 1000, and the genetic modifiers include single point crossover, single point insertion and deletion, and single point mutation. Normally this system can find the function named above in less than a second, but my careful selection of the right random seeds produces a very poor initial population, requiring many generations to complete.
The Int trials use a CPU with integer registers, the Float trial uses ... Float registers. The times between the two are not comparable, as the different storage produces different fitness for a given set of instructions.
Times reported are the number of seconds to complete a test. There is no deep reason why the float test takes longer, I was unable to find a good random seed that balanced both.
Lower is better, reported values are the average length of the last two tournaments of each type, in seconds
Hardware |
JRE |
Integer Tournaments |
Float |
Dual 433Mhz Celeron, 256MB, Win2k | Symantec Java 4.00.010(x) (from Visual Cafe 4.0a) |
31 |
54 |
Dual 433Mhz Celeron, 256MB, Win2k | Sun JDK 1.3 Applet Viewer |
58 |
101 |
Dual 433Mhz Celeron, 256MB, Win2k | Internet Explorer 5.5 |
69 |
88 |
Dual 433Mhz Celeron, 256MB, Win2k | Internet Explorer 5.0 |
69 |
88 |
Dual 433Mhz Celeron, 256MB, Win2k | Netscape 4.75 (Java 1.1.5) |
94 |
465 |
Athlon 550Mhz 128MB, Win98 | Internet Explorer 5.0 |
57 |
67 |
PII 400Mhz, 128MB, Win95 | Internet Explorer 5.5 |
76 |
97 |
G3 iMac 400Mhz, 128MB, OS 9 | Internet Explorer 5.0 |
86 |
150 |
G3 iMac 333Mhz, 192MB, OS 9 | Internet Explorer 5.0 |
117 |
206 |
G3 iBook 300Mhz, 96MB, OS 9 | Internet Explorer 5.0 |
119 |
208 |
G3 iMac 266Mhz, 96MB, OS 9 | Internet Explorer 5.0 |
134 |
242 |
Notes. Other than for the Dual Celeron I use, all values are ordered from fastest to slowest. The values for the Celeron are kept together to aid in comparing different JREs on the same machine. During runs on the Dual Celeron, the second CPU sees only a few percentage points of use, so the values should compare closely to a single Celeron machine.
© 2000/2003 Alan
Robinson (Email
Alan)