Technomorous

BASICové benchmarkování

Sdílet: Twitter - Facebook

Jirka přišel na svém blogu se zajímavým kusem BASICu, kterým je možno změřit rychlost počítače. Je to sice spíše test rychlosti konkrétního interpretu, než přímo procesoru, ale budiž - pro srovnání toho, kde poběží stejný kód (zde Eratosthenovo síto) nejrychleji je to použitelné.

Můj šest-sedm let starý notebook s Core2 má výpočty hotové za 0.02s a v emulátoru ZX Spectra, nastaveného na přesně 100 % rychlosti originálu, jsem se dostal na 113 sekund. Hned, jakmile bude příležitost, zkusím i reálný stroj. Autoři původního srovnání došli při dvojnásobné délce pole k číslu 3x vyššímu, což naši krásnou Z80 uvnitř Spectra hluboce uráží, protože stroje s 6502 jsou na tom o dost lépe. Nicméně je to možné, v programu se nejedná o žádné astrální výpočty a takhle jednoduchá matematika asi sedne tříregistrovým lépe, nebo mají lépe udělané aritmetické funkce v interpretu.

Zkuste to taky na nějaké zajímavé platformě (s W=250, ať máme stejnou náročnost) a dejte vědět výsledek, já pár dalších počítačů také ještě otestuju.


Jméno
Web
E-Mail
Nejsem stroj
Text komentáře

1. dex (14. ledna 2016, 4:17)
Kromě proměnné S jsem všechny ostatní zadával jako integery.
Sinclair QL holé, Minerva ROM 1.98 - 46 sekund.
(52 sekund s na pozadí běžícím sdílením souborů, bez komunikace na síti.)
Sinclair QL+SuperGoldCard, Minerva ROM 1.98 - 6 sekund.
Sinclair QL+SuperGoldCard, SMSQ/E 2.58 - 2 sekundy.
Nicméně je vidět, že opravdu v případě zcela totožného hardware má změna software nezanedbatelný vliv (použití QDOSu místo SMSQ/E způsobí prodloužení času zpracování na 300%).

2. odpad (14. ledna 2016, 8:48)
Atari 800XL - zatím jen emulace:
Atari Basic: 112s
TurboBasic 1.5: 45s
... zkusím ještě reálné železo.
Reálný 8bit HW:
Commodore 8296: 86s
TRS-80 Model 100: 130s
... když si najdu chvilku, zkusím zapnout ještě BBC Master, Apple IIe a třeba ještě něco s 6809. Teď zas musím něco dělat ;-)

3. Logout (14. ledna 2016, 9:09)
Článek jsem proti původnímu znění ze včerejšího večera trochu upravil, neuvědomil jsem si, že zatím co původní testy jsou pro W=500, Jirka má časy pro W=250. Snad se všichni sejdeme na stejném základu.

4. dex (14. ledna 2016, 10:05)
Thomson TO5 (6809E, 1 MHz) - 112 s.
(5 DEFINT A-R: DEFINT T-Z)
V noci, když jsem to pouštěl na QL, nedošlo mi, že časy nejsou porovnatelné s tím, co je na LowEndMac.

5. Tomáš Pecina (14. ledna 2016, 10:58)
Tesla PMD 85 (8080A @2.048MHz), BASIC-G:
Model -1: 113 s
-2: 111 s
-2A: 112 s
-3: 112 s
Testováno v emulátoru (http://retro.pecina.cz), ale výsledky na reálném hw by měly být zcela identické. Měřeno pomocí vestavěného sekundového čítače, kod je na https://github.com/tompecina/retro/blob/master/basic/speedtest-pmd85.bas.

6. odpad (14. ledna 2016, 13:03)
Amstrad NC100: 47s

7. odpad (14. ledna 2016, 14:34)
Apple //e (Applesoft BASIC): 74s

8. odpad (14. ledna 2016, 15:00)
BBC Master: 27s (přesně opsaný kód) a 22s (integer proměnné označené "%")
Pro mne osobně neuvěřitelný rozdíl vůči ostatním 8bitům.
Výkonově myslím není moc rozdíl mezi Masterem a starším Micro (nechce se mi jej teď štrachat ze skříně pro praktické ověření). A Micro je z roku 81 - a tedy starší, než mnohé zde běžné 8bity. Přesto je rychlost Basicu skvělá. Mimo to jde o snad nejvypečenější Basic pro 8bity vůbec - parádní pojetí grafiky, možnost psát inline assembler, atd.
... a nakonec se omlouvám, protože jsem si až teď proklikal ty odkazy na Jirkově stránce - mohl jsem si odpustit tohle duplicitní měření. Alespoň je to s tou nižší mezí - 250.

9. Tomáš Pecina (14. ledna 2016, 15:42)
Tesla Ondra SPO 186 (Z80 @2MHz), BASIC-EXP V5.0/G: 514s
Měřeno v emulátoru. Výsledek nepřekvapí, CPU je silně zpomalován přerušením od videoprocesoru.

10. Logout (14. ledna 2016, 15:43)
Nižší mez je důležitá, protože výsledek se nemění lineárně a jsou počítače, kde by se nikomu nechtělo čekat na výsledek z delší varianty, viz třeba Ondra v komentáři nad námi :-)
Takže díky za měření s W=250, nakonec z toho spáchám tabulku a hodím to k sobě na blog.

11. nula (14. ledna 2016, 19:42)
Tak v GW-BASICu na 80186@4.77 MHz (PSION MC600) je to 38 s.
A až při kontrole frekvence pro potřeby tohoto postu jsem zjistil, že vlastně už asi rok jedu na 4.77 MHz místo plných 8 MHz. Jinak bych si toho asi ani nevšimnul :-)

12. Martin (15. ledna 2016, 23:43)
Sharp MZ-821 (Z80A@3.547MHz), standardni BASIC MZ-1Z016 V1.0A: 63s

13. odpad (16. ledna 2016, 9:56)
Jen pro legraci - vzpomněl jsem si, že před mnoha a mnoha lety jsem ještě na Mac OS 8 nebo 9 používal na nějaké hrátky Chipmunk Basic http://www.nicholson.com/rh... a že se tedy podívám, jestli se to ještě dělá a jede na OSX - jede! ... a nejen na OSX :-)
Ale je to trochu rychlejší pro porovnávání s dinosaury: 0,001421s.
Abych se dostal do řádu sekund, přidával jsem nuly ... při W=25000 už to dalo 1,014625s.
(Měřeno výpisem a následným odečtením "timer()" na začátku kódu a po dokončení běhu. Spuštěno na 3,5 roku staré 15" Retině.)

14. Logout (16. ledna 2016, 10:36)
Palm Centro ... 5 s
Casio PB-1000 ... 292 s
Z dalších zdrojů:
Grundy NewBrain ... 100.3 s (Ellvis)
Amstrad CPC6128 ... 46.93 s (Mike/ZT)
Acorn Archimedes A4000 (float proměnné) ... 3.24 s (Swarm)
Acorn Archimedes A4000 (integer proměnné) ... 2.91 s (Swarm)

15. Logout (16. ledna 2016, 10:38)
Čili je to jen 1400x rychlejší než Sinclair QL se SuperGoldCard? Ten pokrok už není, co býval...

16. nula (17. ledna 2016, 15:48)
Tak ještě jeden obskurní kousek (i když, co je vlastně na PDP-11 obskurního?): Elektronika Bk 0010-1 / Vilnius BASIC: 408 s

17. Imrich Konkol (17. ledna 2016, 20:20)
Trochu exotiky (8, 16 aj 32 bit):
NEC PC8201 (i8085@~2.45MHz) ... 85s
HP 200LX (80188@6MHz, GWBasic) ... 25s
DuinoMite-Mini (PIC32/MIPS, MaximiteBasic 2.7) ... 2s

18. nula (18. ledna 2016, 8:32)
TRG Pro (tj. Palm IIIx, ale s 20 MHz 86k procesorem): 25 s

19. Sledge (18. ledna 2016, 9:01)
Amstrad CPC464 - 50s

20. Logout (19. ledna 2016, 11:58)
Replica 1 (moderní klon Apple 1) s Applesoft BASIC Lite ... 76.2 s
Replica 1 Enhanced BASIC 1.10 ... 65.5 s

21. nula (19. ledna 2016, 20:43)
No tak ještě dva vcelku moderní kousky:
Sharp Zaurus SC-C760, Bywater BASIC: 8.5 s
Ben NanoNote, Bywater BASIC: 6.1 s
Tedy MIPS na 336 MHz je rychlejší než ARM na 400 MHz, to jsem potřeboval vědět ;-)

22. Branislav Bekeš (19. ledna 2016, 22:35)
Ak som nic nedodrbal tak Cambridge Z88 to zbehol za 69,5 s.

23. odpad (20. ledna 2016, 2:41)
Zkoušel jsem teď nějaký commoďorácký basic (cbm Hand Basic) na iphonu: 0,2s

24. Logout (20. ledna 2016, 23:01)
Ktery iPhone? At to mam do tabulky konkretne...

25. odpad (20. ledna 2016, 23:15)
iPhone 5
(a měřil jsem to výpisem "ticků" - proměnná TI (1/60s) před a po a rozdíl byl vždy 12 - tedy 1/5s)


TOPlist