OldComp.cz

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


Právě je 28.03.2024, 20:06

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 28 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 05.09.2018, 17:08 
Offline
Kecálek

Registrován: 28.10.2016, 21:03
Příspěvky: 122
Has thanked: 13 times
Been thanked: 50 times
Lanex píše:
... se mi to zdálo nějaký pomalý... trochu jsem ti to zoptimalizoval, bez použití SP registru

To je pěkné. Dík za optimalizaci.

Nevěděl jsem, že to jde ještě rychleji. I když, měl jsem to tušit, protože už tady na fóru jednou Busy psal, že každý program jde ještě optimalizovat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 05.09.2018, 17:17 
Offline
Kecálek

Registrován: 28.10.2016, 21:03
Příspěvky: 122
Has thanked: 13 times
Been thanked: 50 times
Ale teď, když na to koukám podrobněji, tak se mi zdá, že ty tam kopíruješ jenom 16 řádek, tj. bitmapa 32x16. Takže děláš polovinu práce.
Lanex píše:
ld a,16
...
dec a
jp nz,copyrow

Já jsem to měl pro bitmapu 32x32. A měl jsem tam mírný loop unrolling, takže v jednom průchodu vnitřního cyklu se řeší rovnou dvě řádky.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 05.09.2018, 17:38 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
A sakra, máš pravdu. Az dorazím domů tak se na to ještě podívám. To jsem tatar teda...

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 05.09.2018, 19:40 
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
faraon píše:
199 POKE 23692,-1
Řádek 199 způsobí automatické scrollování
Namiesto -1 tam daj nulu, pobezi to rychlejsie a lepsie.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 06.09.2018, 11:34 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
lukz píše:
Ale teď, když na to koukám podrobněji, tak se mi zdá, že ty tam kopíruješ jenom 16 řádek, tj. bitmapa 32x16. Takže děláš polovinu práce.

Tak jsem to celé přepsal, použil jsem úplně jinou metodu, ted už to kopíruje 32*32 (doufám :D ). Rychlejší to je, ale už to neni tak markantní, jako předtím :) Stíhám to na 3,5MHz za 47 sec (164 836 515 t). Kód sem vkládat nebudu abych nerušil debatu kolem nejpomalejšího jazyka na světě - Basicu :) Odkaz na kód k náhlédnutí zde: http://srv.ilnx.cz/bm.asm

PS: Případně ještě tahle verze, tak to dělá rychleji (45s, 157 332 897t), ale už je to na úkor velikosti kódu http://srv.ilnx.cz/bm2.asm

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Naposledy upravil Lanex dne 06.09.2018, 11:46, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 06.09.2018, 11:42 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 360 times
Been thanked: 304 times
A co treba misto:
Kód:
   ld   (spsave+1),sp   ;Prooooč neexistuje ld hl,sp ??? :)
spsave   ld   hl,0

pouzit:
Kód:
        ld      hl, 0
        add     hl, sp

Neslo by to takhle?

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 06.09.2018, 11:49 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Mikes21 píše:
Neslo by to takhle?

Super, díky, o 9 taktů rychlejší. Ani jsem netušil že add hl,sp existuje, není to zrovna nejpoužívanější instrukce :)

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 06.09.2018, 15:59 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Busy píše:
Namiesto -1 tam daj nulu, pobezi to rychlejsie a lepsie.

Tak jsem to vyzkoušel:
Kód:
199 POKE 23692,-1 => 31:13
199 POKE 23692,0  => 31:13
199 PRINT AT 0,0; => 30:31

92 výpisy po 9 řádcích.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 07.09.2018, 11:44 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Lanex píše:
lukz píše:
Ale teď, když na to koukám podrobněji, tak se mi zdá, že ty tam kopíruješ jenom 16 řádek, tj. bitmapa 32x16. Takže děláš polovinu práce.

Tak jsem to celé přepsal, použil jsem úplně jinou metodu, ted už to kopíruje 32*32 (doufám :D ). Rychlejší to je, ale už to neni tak markantní, jako předtím :) Stíhám to na 3,5MHz za 47 sec (164 836 515 t). Kód sem vkládat nebudu abych nerušil debatu kolem nejpomalejšího jazyka na světě - Basicu :) Odkaz na kód k náhlédnutí zde: http://srv.ilnx.cz/bm.asm

Pánové, je to super, já bych to teď rád dotáhl do konce a proto bych poprosil ještě o dvě věci:
    1) kdyby tomu benchmarku šlo dát "dvakrát tolik práce", aby na stroji, kde trval 45 sec. trval těch cca 90 sec.
    2) do záhlaví toho zdrojáku nějaký popis co/jak to dělá (klidně vytažený odsud z fóra) a aspoň trochu okomentovat ten zdroják

Já bych ho totiž chtěl "zoficiálnit", proto by měl být "na úrovni" - a pak že bychom ho portovali na všechny dosažitelné Z80-based platformy, s pomocí zdejších majitelů patřičného hardware, to je můj cíl... 8-)

Lanex píše:
PS: Případně ještě tahle verze, tak to dělá rychleji (45s, 157 332 897t), ale už je to na úkor velikosti kódu http://srv.ilnx.cz/bm2.asm
Jako líbí se mi, že jste se do toho zabrali a snažíte se to zoptimalizovat, ale tohle má být benchmark a zatížit CPU, takže není úplně cílem, aby to běželo rychle... :P

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 07.09.2018, 14:37 
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
Lanex píše:
Ani jsem netušil že add hl,sp existuje
Takze pocas najblizsich dlhych zimnych vecerov sa isto stane tvojim najoblubenejsim citanim tato tabulka :dcod:
Lanex píše:
není to zrovna nejpoužívanější instrukce :)
No ako kde. Napriklad ja som ju obcas vyuzil v matematike pri demo efektoch, ked som potreboval k HL pripocitavat konstantu a uz som nemal ziadny iny register na toto volny.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 07.09.2018, 15:15 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 360 times
Been thanked: 304 times
Ja mam radeji tuhle http://clrhome.org/table/. A jestli bude nejaka zima, nebo i za letniho horka, da se do ni obcas nahlednout ;-)

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 07.09.2018, 16:11 
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
Mikes21 píše:
Ja mam radeji tuhle http://clrhome.org/table/. A jestli bude nejaka zima, nebo i za letniho horka, da se do ni obcas nahlednout ;-)
A vies mi podla tej tabulky povedat, co urobi instrukcia s kodom DD 00 ? :poke:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Benchmarking v BASICu
PříspěvekNapsal: 25.01.2019, 19:47 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
Som prekvapený, že nikto nespomenul najznámejší BASIC benchmark a to GAMMIX test. Už nejakú dobu zháňam jeho zdroják a zabudol naň aj Google.

Občas pozerám nejaké scifi o zmene času a podobne. Niekedy mám pocit, že som z iného času, keďže ani tu to nikto nepozná.

_________________
Sharp MZ-821
Milsa MZ-841


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ů: 28 ]  Přejít na stránku Předchozí  1, 2

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 4 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