Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: POKE (ja muut)

Createman [28.01.2003 18:43:08]

#

Antakaa joku POKE esimerkki tai vastaava, mutta PSETiä nopeampi

Createman [28.01.2003 18:43:39]

#

Ja QBasic on kyseessä

Jogge [28.01.2003 20:32:13]

#

Esimerkki piirtää punaisen pisteen keskelle ruutua.

SCREEN 13
DEF SEG = &HA000

x = 160
y = 100
c = 4
POKE y * 320 + x, c

Antti Laaksonen [31.01.2003 20:47:52]

#

Tein pienen ohjelman, joka mittaa PSETin ja POKEn nopeuseroja täyttämällä 50 kertaa näytön kokoisen alueen. Tällä koneella ero oli POKEn hyväksi noin sekunnin verran, eli ei ihan mitätön.

SCREEN 13

'PSET
a! = TIMER
FOR k% = 1 TO 50
  CLS
  FOR i% = 0 TO 319
    FOR j% = 0 TO 199
      PSET (i%, j%), 1
    NEXT
  NEXT
NEXT
a1! = TIMER - a!

'POKE
DEF SEG = &HA000
a! = TIMER
FOR k% = 1 TO 50
  CLS
  FOR i% = 0 TO 319
    FOR j% = 0 TO 199
      POKE j% * 320& + i%, 1
    NEXT
  NEXT
NEXT
a2! = TIMER - a!

'POKE (optimoitu)
DEF SEG = &HA000
a! = TIMER
FOR k% = 1 TO 50
  CLS
  FOR i& = 0 TO 63999
    POKE i&, 1
  NEXT
NEXT
a3! = TIMER - a!

PRINT "PSETillä "; a1!; "sekuntia"
PRINT "POKElla "; a2!; "sekuntia"
PRINT "POKElla (o)"; a3!; "sekuntia"

Vilikki [01.02.2003 09:49:38]

#

vai että sekunnin verran... kun kokeilin joskus itse vastaavaa, niin ero oli paaaaljoon suurempi. Millainen kone muuten sinulla on, Antti? Itselläni oli 523 mhz kone...

Antti Laaksonen [01.02.2003 11:29:51]

#

Luulisin, että mitä hitaampi kone on käytössä, sen suuremmaksi ero tulee. Tämä kone, jolla testasin, on 700 MHz. Ja riippuu asia tietysti siitäkin, millaisella ohjelmalla testataan. Tuossa edelläolevassa ohjelmassa sain tulokset:

PSETillä 2.359375 sekuntia
POKElla 1.539063 sekuntia
POKElla (o) 1.320313 sekuntia

Createman [01.02.2003 16:36:28]

#

Kiitos hyvästä testistä! Koneeni on AMD Athlon XP 1900+ eli 1,6GHz.

PSETillä 1.308594 sekuntia
POKElla .9921875 sekuntia
POKElla (o) .9882813 sekuntia

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta