Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Re: No teda...

Zdenek Adler SHARP MZ-800

Abych se priznal, neznam WIN NT natolik, abych vedel, ve kterych konkretnich
bodech bych mohl kod programu optimalizovat.
K onomu "zrani" systemovych prostredku: zpusobuje to vlastne moje reseni
"regulace" rychlosti procesoru pracujici na nasledujicim principu:
Je znamo, ze obnovovani obrazovky by melo probihat v rytmu 50 Hz - teto
smycky vyuzivam i pro synchronizaci. Pri kazdem "refreshi" obrazovky delam
nasledujici vec:

if checkpoint>gettickcount then
 repeat until gettickcount>=checkpoint;
 checkpoint:=gettickcount+(20*FRAME_SKIP*(200-form4.trackbar1.position)div
100);
 refresh_scr;

Znamena to, ze pri kazde obnove obrazovky se stanovi jakysi "checkpoint",
tj. cas, kdy by teoreticky mela nastat dalsi obnova obrazovky. Pri pristim
obnoveni obrazovky kontrolujeme, zda aktualni cas neni mensi nez
"checkpoint" - tzn. ze procesor je moc rychly, proto se zacykli ve smycce,
kde ceka, az se aktualni cas=checkpoint. Pokud nestiha, tuto smycku
preskoci...
Doufam ze jsem to napsal alespon trochu srozumitelne - pokud by mel nekdo
lepsi napad, ktery by tolik nezatezoval CPU, tak sem s nim.

Mejte se fajn, preji pekneho Mikulase :-)

Zobrazit původní podobu

Vlákno · 2 zprávy

Zobrazit celé vlákno na jedné stránce

  1. Re: No teda... Zdenek Adler
  2. Re: No teda... Anonym