Öök. Ei tämä kyllä varsinaisesti ole vinkki mutta ihan vänkä testaus jutska. Testaa kuinka nopeasti piirretään pisteitä. Mitä tarkemman tuloksen haluaa sitä suuremmaksi kannattaa vääntää kerrat vakio. Koodi ei valitettavasti ole kommentoitua koska väänsin sen alunperin itselleni testattavaksi kolmessa minuutissa ja se on niin yksinkertainen että en usko että mitään kommentteja tarvii siihen.
Tällä voi todeta myös että PSET on HIDAS vertaa ensiksi saamaasi arvoa tuohon jälkimmäiseen ja huomaat että tämä on totta. Itse sain tossa ekassa millisekuntiarvoksi 0.00189208984375 ja siinä tokassa 0.001373291015625(ms).
DECLARE SUB tilasto (taimi#) DEFDBL A-Z 'tarkkutta SCREEN 13: SLEEP 2 CONST kerrat = 10, wid = 320, hei = 200 CLS s = TIMER FOR d = 1 TO kerrat FOR y = 0 TO hei - 1 FOR x = 0 TO wid - 1 PSET (x, y), d NEXT NEXT NEXT e = TIMER tilasto e - s '-- ja nopeempi alkaa CLS DEF SEG = &HA000 s = TIMER FOR d = 1 TO kerrat FOR y = 0 TO hei - 1 FOR x = 0 TO wid - 1 POKE y * 320 + x, d NEXT NEXT NEXT e = TIMER DEF SEG tilasto e - s SUB tilasto (taimi) CLS t.whole = taimi t.screen = t.whole / kerrat t.point = t.screen / hei / wid t.pointms = t.point * 1000 PRINT "Koko hoito: "; PRINT USING "##.#########"; t.whole PRINT "Yksi kerta: "; PRINT USING "#.#############"; t.screen PRINT "Yksi piste: "; PRINT USING "#.######################"; t.point PRINT "("; PRINT USING "#.###################"; t.pointms; PRINT " millisekuntia)" OPEN "tilasto.txt" FOR APPEND AS #1 PRINT #1, t.pointms CLOSE WHILE INKEY$ = "": WEND END SUB
Mainittakoon, että näyttömuistissa pikselit on tallennettu peräkkäin, minkä vuoksi näytön täyttäminen yhden pitkän silmukan avulla olisi nopeampaa, kun aikaavievää 320:lla kertomista ei aina tarvitsisi tehdä. Muuttujien (piirtonopeuden laskuun käytettäviä muuttujia lukuunottamatta) määrittäminen kokonaisluvuiksi toisi myös lisää nopeutta.
Kokonaisluvut toisi paljon lisää nopeutta ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.