OldComp.cz http://oldcomp.cz/ |
|
Benchmarking v BASICu http://oldcomp.cz/viewtopic.php?f=134&t=6590 |
Stránka 2 z 2 |
Autor: | lukz [ 05.09.2018, 17:08 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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. |
Autor: | lukz [ 05.09.2018, 17:17 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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. |
Autor: | Lanex [ 05.09.2018, 17:38 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
A sakra, máš pravdu. Az dorazím domů tak se na to ještě podívám. To jsem tatar teda... |
Autor: | Busy [ 05.09.2018, 19:40 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
faraon píše: 199 POKE 23692,-1 Namiesto -1 tam daj nulu, pobezi to rychlejsie a lepsie.
Řádek 199 způsobí automatické scrollování |
Autor: | Lanex [ 06.09.2018, 11:34 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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 ). 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 |
Autor: | Mikes21 [ 06.09.2018, 11:42 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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? |
Autor: | Lanex [ 06.09.2018, 11:49 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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 |
Autor: | faraon [ 06.09.2018, 15:59 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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. |
Autor: | Jiiira [ 07.09.2018, 11:44 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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 ). 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:
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... 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...
|
Autor: | Busy [ 07.09.2018, 14:37 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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 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.
|
Autor: | Mikes21 [ 07.09.2018, 15:15 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
Ja mam radeji tuhle http://clrhome.org/table/. A jestli bude nejaka zima, nebo i za letniho horka, da se do ni obcas nahlednout |
Autor: | Busy [ 07.09.2018, 16:11 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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 ?
|
Autor: | Milsa [ 25.01.2019, 19:47 ] |
Předmět příspěvku: | Re: Benchmarking v BASICu |
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á. |
Stránka 2 z 2 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |