Öö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 SUBMainittakoon, 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.