Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : BASIC Speed Benchmark Tests

   Page 4 of 8    
Posted: 09:38pm
22 May 2021
Copy link to clipboard
lizby
Guru

  Mixtel90 said  Benchmarks have been quoted ever since computers started - and they still don't mean much.

For hardware which runs MMBasic, they do a pretty good job of showing the relative performance of the ports on different platforms. No one here is jazzing the benchmark to gain a better look. CG's code is unchanged since 2012. Peter has even used published benchmark timings to improve the firmware (timings which revealed firmware shortcomings relative to other MMBasic ports).

The CG benchmark doesn't show everything which might be important for some particular use, but as a comparison within the family, it seems pretty revealing.

~
Edited 2021-05-23 07:39 by lizby
 
Posted: 12:03pm
23 May 2021
Copy link to clipboard
twofingers
Guru


  Mixtel90 said  String handling: don't run into garbage collection on an old computer or the result is meaningless, even on that machine. Unless you are testing for the efficiency of garbage collection, of course. :)

FYI
On the old computers (eg C64), the garbage collection was a "party pooper".
MMBasic does not use/needs no garbage collection (AFAIK).

Michael
 
Posted: 12:48pm
23 May 2021
Copy link to clipboard
Volhout
Guru

Benchmarks....

I remember from the earlier calculators that calculating 69! was a benchmark.
And the cheap casio's outperformed more expensive TI calculators. And then TI made a quick fix. There are only 69 possible integer numbers until 69, so they implemented a lookup table specific for the ! calculations. And the results where immediate. Not calculated, but taken from a table.

An ancient version of Dieselgate....

Volhout
Edited 2021-05-23 22:49 by Volhout
 
Posted: 11:28pm
04 Sep 2021
Copy link to clipboard
lizby
Guru

Perhaps time for an update.
                 BM1     BM2    BM3      BM4     BM5     BM6     BM7     BM8
ABC 800 single   0.9     1.8    6.0      5.9     6.3    11.6    19.6     2.9
ABC 800 double   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 "fastmode"  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 w. #s   0.016   0.131   0.193   0.194   0.245   0.393   0.582   0.241
Maximite w/o #s  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
MM+ MX470 120MHz 0.013   0.082   0.135   0.135   0.265   0.380   0.597   0.174
MMX 198MHz       0.006   0.045   0.07    0.08    0.141   0.201   0.287   0.126
Picromite ZeroW  0.014   0.058   0.093   0.102   0.184   0.298   0.354   0.127
Armmite H7       0.003   0.023   0.038   0.042   0.067   0.098   0.146   0.065
ArmMite F4       0.011   0.079   0.14    0.149   0.249   0.354   0.528   0.257
MMBASIC DOS      0.0002  0.0017  0.0028  0.0028  0.0073  0.0092  0.0117  0.0058
CMM2             0.00176 0.0118  0.01903 0.01728 0.03611 0.05062 0.07582 0.02851
PicoMite         0.0166  0.1096  0.1800  0.1840  0.3325  0.4715  0.6688  0.3193
Linux            0.0000  0.0020  0.0040  0.0040  0.0080  0.0130  0.0190  0.0070

C-Language
Arduino UNO      0.010   0.010   0.058   0.043   0.043   0.043   0.045   0.284
Arduino DUE      0.003   0.003   0.006   0.007   0.007   0.007   0.106   0.014
ESP32S           0.00007 0.00007 0.00030 0.00011 0.00016 0.00016 0.00016 0.02413


CMM2 has gained many speedups since first introduced. Numbers here from today (400mHz).
Linux version is an unreleased work in progress.
Speeds for Linux, DOS, and Picromite (no longer supported) obviously depend on the hardware.

As Geoff implies early in this thread, it's an astonishing ride we early "home computer" enthusiasts have been on for the last 40+ years. And quite a ride for MMBasic, too.

~
Edited 2021-09-05 10:25 by lizby
 
Posted: 02:28am
05 Sep 2021
Copy link to clipboard
toml_12953
Guru

  halldave said  Has anyone got a working Dick Smith System 80 or Tandy TRS-80 Model I Level II they could run these Benchmarks on?



Check the original article

Rugg-Feldman Benchmarks

to see comparisons of various systems. There was a follow-up article

BASIC Timings Revisited

which had timings for more systems. Neither the DS nor TRS-80 were on there, though.
 
Posted: 07:08pm
07 Sep 2021
Copy link to clipboard
Volhout
Guru

I am not sure whommaintains this list, but you may want to add the score for BBC basic V on the Raspberry Pi zero, running RiscOS pico on bare metal.

Bm1: 0.0001
Bm2: 0.0007
Bm3: 0.0016
Bm4: 0.0014
Bm5: 0.0015
Bm6: 0.0030
Bm7: 0.0030
Bm8: 0.0036

Rather fast...

Since BBC basic V uses a single core, it will not be much faster on multicores like the Pi 3 or 4. Since it only depends on clock speed.
 
Posted: 07:33pm
07 Sep 2021
Copy link to clipboard
Tinine
Guru

Well mine has been quoted several times but is totally blown off:

-MX170
-40MHz
-Possible to have a live prompt during code execution
-Up to 20 tasks
-Close to 120k flash for programs

Bypic is no longer developed but it already works!

If you need serious performance but from a simple MX170.....


 
Posted: 06:48am
08 Sep 2021
Copy link to clipboard
Volhout
Guru

It is done...


                 BM1     BM2    BM3      BM4     BM5     BM6     BM7     BM8
80's computers
ABC 800 single   0.9     1.8    6.0      5.9     6.3    11.6    19.6     2.9
ABC 800 double   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 "fastmode"  4.5     6.9    16.4    15.8    18.6    49.7    68.5    22.9

MMBasic
Maximite         0.016   0.144   0.196   0.205   0.354   0.512   0.721   0.310
Maximite w. #s   0.016   0.131   0.193   0.194   0.245   0.393   0.582   0.241
Maximite w/o #s  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
MM+ MX470 120MHz 0.013   0.082   0.135   0.135   0.265   0.380   0.597   0.174
MMX 198MHz       0.006   0.045   0.07    0.08    0.141   0.201   0.287   0.126
Picromite ZeroW  0.014   0.058   0.093   0.102   0.184   0.298   0.354   0.127
Armmite H7       0.003   0.023   0.038   0.042   0.067   0.098   0.146   0.065
ArmMite F4       0.011   0.079   0.14    0.149   0.249   0.354   0.528   0.257
MMBASIC DOS      0.0002  0.0017  0.0028  0.0028  0.0073  0.0092  0.0117  0.0058
CMM2             0.00176 0.0118  0.01903 0.01728 0.03611 0.05062 0.07582 0.02851
PicoMite         0.0166  0.1096  0.1800  0.1840  0.3325  0.4715  0.6688  0.3193
Linux            0.0000  0.0020  0.0040  0.0040  0.0080  0.0130  0.0190  0.0070

Other Recent Basics
ByPic MX170 40M  0.001   0.010   0.023   0.020   0.027   0.041   0.080   0.043
BBC_V Pi Zero    0.0001  0.0007  0.0016  0.0014  0.0015  0.0030  0.0030  0.0036

C-Language
Arduino UNO      0.010   0.010   0.058   0.043   0.043   0.043   0.045   0.284
Arduino DUE      0.003   0.003   0.006   0.007   0.007   0.007   0.106   0.014
ESP32S           0.00007 0.00007 0.00030 0.00011 0.00016 0.00016 0.00016 0.02413


And...too bad... the SD card image for RISCOS PICO (BBC basic without the graphics RiscOS desktop) is taken offline, and is no longer supported, similar to ByPic and PicroMite. The full suite RiscOS is still actively maintained.
Edited 2021-09-08 17:09 by Volhout
 
Posted: 05:21pm
01 Sep 2022
Copy link to clipboard
lizby
Guru

With Annex RDS for ESP32 added:
                BM1     BM2    BM3      BM4     BM5     BM6     BM7     BM8
80's computers
ABC 800 single   0.9     1.8    6.0      5.9     6.3    11.6    19.6     2.9
ABC 800 double   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 "fastmode"  4.5     6.9    16.4    15.8    18.6    49.7    68.5    22.9

MMBasic
Maximite         0.016   0.144   0.196   0.205   0.354   0.512   0.721   0.310
Maximite w. #s   0.016   0.131   0.193   0.194   0.245   0.393   0.582   0.241
Maximite w/o #s  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
MM+ MX470 120MHz 0.013   0.082   0.135   0.135   0.265   0.380   0.597   0.174
MMX 198MHz       0.006   0.045   0.07    0.08    0.141   0.201   0.287   0.126
Picromite ZeroW  0.014   0.058   0.093   0.102   0.184   0.298   0.354   0.127
Armmite H7       0.003   0.023   0.038   0.042   0.067   0.098   0.146   0.065
ArmMite F4       0.011   0.079   0.14    0.149   0.249   0.354   0.528   0.257
MMBASIC DOS      0.0002  0.0017  0.0028  0.0028  0.0073  0.0092  0.0117  0.0058
CMM2             0.00176 0.0118  0.01903 0.01728 0.03611 0.05062 0.07582 0.02851
PicoMite         0.0166  0.1096  0.1800  0.1840  0.3325  0.4715  0.6688  0.3193
Linux            0.0000  0.0020  0.0040  0.0040  0.0080  0.0130  0.0190  0.0070

Other Recent Basics
ByPic MX170 40M  0.001   0.010   0.023   0.020   0.027   0.041   0.080   0.043
BBC_V Pi Zero    0.0001  0.0007  0.0016  0.0014  0.0015  0.0030  0.0030  0.0036
Annex RDS ESP32  0.032   0.223   0.384   0.338   0.463   0.714   1.224   0.631

C-Language
Arduino UNO      0.010   0.010   0.058   0.043   0.043   0.043   0.045   0.284
Arduino DUE      0.003   0.003   0.006   0.007   0.007   0.007   0.106   0.014
ESP32S           0.00007 0.00007 0.00030 0.00011 0.00016 0.00016 0.00016 0.02413
 
Posted: 07:05pm
01 Sep 2022
Copy link to clipboard
twofingers
Guru


  Volhout said  
And...too bad... the SD card image for RISCOS PICO (BBC basic without the graphics RiscOS desktop) is taken offline, and is no longer supported, similar to ByPic and PicroMite. The full suite RiscOS is still actively maintained.

??
https://www.riscosopen.org/content/downloads/raspberry-pi

https://www.riscosopen.org/zipfiles/platform/raspberry-pi/RISCOSPi.5.28.zip?1644534427

Regards
Michael
 
Posted: 09:47pm
01 Sep 2022
Copy link to clipboard
Volhout
Guru

Riscos pico was a very small image of just the basic interpreter. No gui, nothing. Directly booting bbc basic V
 
Posted: 03:03am
02 Sep 2022
Copy link to clipboard
scruss
Regular Member

  Volhout said  Riscos pico was a very small image of just the basic interpreter. No gui, nothing. Directly booting bbc basic V

It was also an unmaintained once-off for a particular event. It doesn't run on the most recent Raspberry Pi boards.

If you're desperate to have it, the Internet Archive is your friend: RISC OS Open Downloads. Otherwise, it's possible to set the regular RISC OS for the Raspberry Pi to boot straight to BASIC: RISC OS Pico-alike. Yes, a larger download, but still quite small.

The Raspberry Pi Pico BBC BASIC isn't the same codebase as the RISC OS ARM one, btw. It's running a modified version of Richard Russell's portable BBC BASIC for SDL 2.0. The original RISC OS BASIC would be well-nigh impossible to port to the Cortex-M0+.
 
Posted: 09:56pm
02 Sep 2022
Copy link to clipboard
stanleyella
Guru


I wrote an 8 sprite program that plotted 16 lines of 16 pixels and animated them. It ran 10 times slower than a mega328p ie uno using gcbasic.
OK, when I used blit mmbasic was faster just shows speed tests just test certain things.
 
Posted: 10:32pm
02 Sep 2022
Copy link to clipboard
Andrew_G
Guru

Hi All, and apologies to Stan (this is NOT directed to you).

Call me old-fashioned but I grew up in an era when the Queen/Kings' English was used and widely understood.

Can someone please explain (seriously) what "10 times slower" actually means, and how one derives that meaning.

Does it take 1/10th of the time - i.e. is actually faster or does it run at 1/10th of the speed - i.e. is actually slower?
Without knowing the derivation of this American slang I truly have no idea what is meant.

Many thanks,

Andrew
Edited 2022-09-03 08:33 by Andrew_G
 
Posted: 10:47pm
02 Sep 2022
Copy link to clipboard
lizby
Guru

Probably not being helpful here, but the "American slang" is coming from a UK member.

This American would not use this construction (and it grates on me even when I know what is meant), but would say something like "takes 10 times as long to run".
 
Posted: 06:05am
03 Sep 2022
Copy link to clipboard
Tinine
Guru

I wouldn't blame America for that one. Many decades ago, I had the misfortune to be present during an episode of Coronation Street and I distinctly remember one of the characters making the remark; "that'll be four times cheaper in America, that will".

I'm back in England after 30 years in the US and I have to tolerate way more moronic sh*te here.

Apart from their double negatives, the only irritating non-sensical remarks that most Americans use are things like:

"The proof is in the pudding" and "I could care less"  
 
Posted: 06:07am
03 Sep 2022
Copy link to clipboard
JohnS
Guru

"10 times slower" should be that it takes 10 times as long.  (The clue being the word "slower".)

(Also, often the "10" is a rounded or approximate figure, to make a point.)

John
 
Posted: 08:18am
03 Sep 2022
Copy link to clipboard
toml_12953
Guru

  Tinine said  
Apart from their double negatives, the only irritating non-sensical remarks that most Americans use are things like:

"The proof is in the pudding" and "I could care less"  


We Americans tend to shorten things (anybody care for a bunch of letter "U"s we don't need in words like color and favor?), so they still make sense to us but sound funny to others.

"The proof of the pudding is in the eating" of course makes more sense but we shortened it and still understand its general meaning.

A professor of English told his class that in English, a double negative is a positive and in Russian a double negative is still a negative. He also said that there's no language in which a double positive is a negative.

A student responded, "Yeah, right."
 
Posted: 08:27am
03 Sep 2022
Copy link to clipboard
Mixtel90
Guru


As long as I don't have to use a "soddering" iron and "sodder" I'm fine. ;)
 
Posted: 09:03am
03 Sep 2022
Copy link to clipboard
zeitfest
Guru

  Quote  
...
Edited 2022-09-03 08:33 by Andrew_G

...
...
Posted: 10:47pm 02 Sep 2022


It seems the edit was done after the next post by lizby ? What gives ?

As for the Queen/Kings' english... you might ask the
Saxe-Coburg-Gotha (now Windsor) family ...  
 
   Page 4 of 8    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025