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