BASIC Speed Benchmark Tests


Author Message
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 2885
Posted: 08:42pm 16 Mar 2015      

Out of interest I tried the PIC32MX470 running at 120MHz:


BM1 BM2 BM3 BM4 BM5 BM6 BM7 BM8
ABC 800 single precision 0.9 1.8 6.0 5.9 6.3 11.6 19.6 2.9
ABC 800 double precision 1.2 2.2 10.0 10.6 11.0 17.8 26.4 14.4
IBM PC 1.5 5.2 12.1 12.6 13.6 23.5 37.4 3.5
Apple III 1.7 7.2 13.5 14.5 16.0 27.0 42.5 7.5
VIC-20 1.4 8.3 15.5 17.1 18.3 27.2 42.7 9.9
ZX81 in "fast mode" 4.5 6.9 16.4 15.8 18.6 49.7 68.5 22.9

Maximite 0.016 0.144 0.196 0.205 0.354 0.512 0.721 0.310

Maximite with line Nos 0.016 0.131 0.193 0.194 0.245 0.393 0.582 0.241
Maximite without line Nos 0.016 0.111 0.173 0.173 0.192 0.336 0.525 0.220
MicroMite 40MHz 0.028 0.18 0.285 0.289 0.644 0.892 1.346 0.376
MicroMite 48MHz 0.023 0.15 0.237 0.24 0.536 0.744 1.121 0.313

st429 180Mhz 0.012 0.073 0.117 0.125 0.207 0.315 0.497 0.162
st407 168Mhz 0.010 0.067 0.104 0.111 0.195 0.290 0.443 0.146

MX470 120MHz MMBasic 0.013 0.082 0.135 0.135 0.265 0.380 0.597 0.174


The MX470 MMBasic is an internal version of mine that is different from matherp's port (it runs at 120MHz for a start). It is interesting to note that the performance of the high speed processors like the MX470 and STM32F407 does not scale directly with the clock speed. This is because the CPU is more limited by the speed at which it can read the flash memory rather than its clock speed.

Benchmarks BM3 and above depend heavily on floating point calculations and you would have expected the STM32F407 with a floating point processor to be MUCH faster than the MX470 but the difference is not that great. It must be because the overhead of the interpreter is the dominating factor rather than the speed of calculating numbers.

Just why the BM5 benchmark running on a 80MHz "Maximite without line Nos" processor is faster than an ARM chip running at 180MHz is a mystery. As they say... "lies, damn lies and benchmarks".

Geoff
Geoff Graham - http://geoffg.net