OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 10:40

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 
Autor Zpráva
 Předmět příspěvku: Noelův benchmark Basicu ve Forthu
PříspěvekNapsal: 20.12.2020, 19:14 
Offline
Radil

Registrován: 03.07.2018, 23:06
Příspěvky: 362
Has thanked: 221 times
Been thanked: 253 times
Ve videu, které se věnuje TI-99/4A a jeho nezvyklé architektuře, Noel zkoušel Basicovský benchmark a porovnával výsledky s ostatními dobovými počítači. ZX Spectrum zde, ke své hanbě, dosáhlo ještě horšího výsledku než TI-99/4A. Zkoušel i ZX80 které Spectrum zadupalo do země, což není nic divného, protože benchmark pro ZX80 musel přepsal. Nepoužívá reálná čísla, čímž výsledky úplně znehodnotil. Pak se přidaly i další počítače. BBC Micro potvrdilo svoji pověst bleskového interpretu Basicu.

Video: https://www.youtube.com/watch?v=H05hM_Guoqk.

Benchmark:
Kód:
10 FOR i=1 TO 10
20 s=0
30 FOR j=1 TO 1000
40 s=s+j
50 NEXT j
60 PRINT ".";
70 NEXT i
80 PRINT s

Výsledky:
https://docs.google.com/spreadsheets/d/ ... d=22692068

Řekl jsem si, že by nebylo špatné ekvivalentní program zkusit i ve Forthu na Jupiter Ace a trochu tak (na opravdu špatném benchmarku) prověřit tvrzení jeho autorů o desetinásobné rychlosti oproti Basicu. Znovu jsem si tak ověřil, že 8 kB ROM pro Jupiter ACE je skutečně na samé hranici použitelnosti a možná je to pro tento počítač ještě větší handicap než prťavá RAM.

Tento benchmkark vyžaduje práci s čísly, která jsou mimo rozsah standardních 16 bitů, jenže čísla dvojnásobného rozsahu implementace Forthu v Jupiter Ace neobsahuje. Má reálná čísla, ale jejich podpora je extrémně mizerná, takže pro tento benchmark je nutné si dopsat ještě podporu proměnných pro reálná čísla (slova 2VARIABLE, 2! a 2@).

Výsledek není vůbec oslňující:
58 s - slow mód s kontrolami
40 s - fast mód bez kontrol

Při použití 16-bitových čísel (za cenu špatného výsledku kvůli přetečení) byl čas necelých 12 s.

Zkusil jsem ještě Abersoft Forth na ZX Spectru, které podporu dvojnásobného rozsahu má. Tam je výsledek o řád lepší - 4,5 s.


Přílohy:
Poznámka: Abersoft Forth
chrome_t5qDDuQKFV.png
chrome_t5qDDuQKFV.png [ 28.2 KiB | Zobrazeno 4486 krát ]
Poznámka: Jupiter Ace
EightyOne_fS2cUozT0p.png
EightyOne_fS2cUozT0p.png [ 3.41 KiB | Zobrazeno 4486 krát ]

_________________
Špóngiu navlhčiť
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Noelův benchmark Basicu ve Forthu
PříspěvekNapsal: 20.12.2020, 19:45 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Pavel.Krivanek píše:
ZX Spectrum zde, ke své hanbě, dosáhlo ještě horšího výsledku než TI-99/4A.
Uz som to aj inde pisal, basic ZX Spektra nie je prilis optimalizovany na rychlost, ale skor na komplexnost. Napriklad vsade tam, kde je mozne napisat ciselnu alebo retazcovu hodnotu, je mozne napisat aj lubovolny ciselny ci retazcovy vyraz. Nie vela basicov umoznuje pisat lubovolny vyraz v prikaze GOTO :thumbup: Dalej, pri funkciach nie je nutne pouzivat zatvorky, ale namiesto toho pouziva inteligentny system vyhodnocovania priorit operatorov ktory zahrna aj funkcie, co tiez nema kazdy iny basic.

Takze ano, ZX basic nie je ziadny rychlik, avsak na druhej strane, programuje sa v nom aj vdaka tomu velmi dobre a komfortne. Pokial clovek chce aby mu nieco bezalo podstatne rychlejsie, a konfortnost napisania programu nie je az taka priorita, vzdy moze pouzit asembler :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Noelův benchmark Basicu ve Forthu
PříspěvekNapsal: 20.12.2020, 20:17 
Offline
Radil

Registrován: 03.07.2018, 23:06
Příspěvky: 362
Has thanked: 221 times
Been thanked: 253 times
Zkoušel jsem i Abersoft Forth (1.1A) pro Commodore 64 a tam běží stejný program 12 s. Celkem pochopitelné vzhledem k tomu, že 6502 není Forthu moc nakloněn. Nutno ale říct, editor v Abersoft Forth na Commodorovi je neskonale pohodlnější.

_________________
Špóngiu navlhčiť


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Noelův benchmark Basicu ve Forthu
PříspěvekNapsal: 20.12.2020, 22:17 
Offline
Radil

Registrován: 03.07.2018, 23:06
Příspěvky: 362
Has thanked: 221 times
Been thanked: 253 times
Drobná poznámka, v tom Abersoft Forthu pro Commodore 64 (https://commodore.software/downloads/download/188-forth/11691-commodore-64-forth) slovo 2VARIABLE ve slovníku není, ač je v přiložené dokumentaci popsáno. Pravděpodobně se jedná o chybu vydavatele, protože Spectrum verze je starší a má ji. Musí se vytvořit ručně, třeba takto
Kód:
: 2VARIABLE <BUILDS SWAP , , DOES> ;

_________________
Špóngiu navlhčiť


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz