Should have published some of this data long ago. But better late than never. I ran some very simple integer and floating point benchmarks on all the parts I could find that I have BASIC running on.
Yes, we just got a BASIC running on the Arduino Zero - SAMD21, and we are looking for beta testers, and gauging interest in adding this. We intend it to be a free download.
Sure there are Coremark numbers published by all chip vendors. But Coremark is copyrighted and takes a little configuring and only in C. Mine are not intended as an expansive benchmark, but as a quick test that can be implemented in a few minutes on nearly any device or language.
Floating point test
dim x as single x=1000000 while x>1 x=x/1.0001 i=i+1 ' -- count iterations -- about 138K loop
i=1000000 while i i=i-1 loop
And the results
|Device||Float||Integer||raw CPU clock||notes|
|nRF51822||5442 ms||1018 ms||16 Mhz||microbit|
|LPC824||4193 ms||653 ms||30 Mhz|
|LPC1549||3719 ms||1001 ms||72 Mhz|
|LPC11U37||2706 ms||418 ms||50 Mhz|
|LPC11U68||2855 ms||419 ms||50 Mhz|
|SAMD21||1887 ms||310 ms||48 Mhz||Arduino Zero|
|MK20DX128||1167 ms||273 ms||72 Mhz||Teensy3.0|
|MK20DX256||795 ms||276 ms||72 Mhz||Teensy3.2|
|LPC2103||677 ms||317 ms||50 Mhz|
|STM32F411||110 ms||139 ms||100 Mhz||Nucleo|
|LPC1751||519 ms||120 ms||96 Mhz|
|LPC1756||511 ms||125 ms||96 Mhz|
|LPC54102||97 ms||125 ms||100 Mhz||dual CPU|
|LPC54102 M0||1930 ms||259 ms||100 Mhz||dual CPU|
|LPC4078||73 ms||101 ms||120 Mhz|
|LPC54005||43 ms||73 ms||180 Mhz|
|STM32G431||43 ms||71 ms||170 Mhz||Nucleo|
|LPC4330||39 ms||70 ms||200 Mhz||dual CPU|
|RT1062||13.9 ms||15 ms||600 Mhz||Teensy 4.0|
|old HP netbook||125 ms||344 ms||1600 Mhz||Atom N270|
|GPD PC||31 ms||141 ms||1600 Mhz||Atom x7 Z8750|
|Dell PC||9 ms||34 ms||2760 Mhz||i5 3330S CPU|
|QBasic on Dell||500 ms||3789 ms||2760 Mhz||i5 3330S CPU|
|QB64 on Dell||1.7 ms||3.2 ms||2760 Mhz||i5 3330S CPU|
Not all these parts became products, but were designed as special versions for OEMs.
The last are the PC's I use most of the time, and those PC's are running the PC-ARMbasic emulator (which compiles to interpreted opcodes). QBasic is an interpreter and quite a bit slower than the PC-ARMbasic emulator. QB64 compiles to native 64bit PC instructions.
The PC-ARMbasic emulator can be run from the command line on nearly any PC, maybe someone wants to expand this,
To comment check out the forum