Konference: Počítač SHARP MZ-800 a emulátory

Od: Zdenek Adler
Datum: 5.12.2000 09:18
Předmět: Re: No teda...


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 :-)

Ostatní příspěvky vlákna:

 
[2000/9 (6)] [2000/10 (5)] [2000/11 (43)] [2000/12 (114)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]