számításigényes algoritmusok fejlesztése közben gyakran felmerül az igény, hogy valami módon betekintsünk a folyamataink sebességébe, vagy a legkisebb optimalizálás eredményét is lássuk. erre dobtam össze egy viszonylag egyszerű kis osztályt FrameRateCounter néven, ami két dolgot végez: méri a movie átlagos és aktuális fps értékét, illetve két metódussal mérhetjük vele a számításigényes függvényeink terhelését is.
fps mérés
mindehhez elég példányosítani az osztályt ( a beállított frameRate-re szüksége van a terhelésméréshez ):
private var fpsCounter:FrameRateCounter;
...
fpsCounter = new FrameRateCounter( stage.frameRate );
és máris kérhetjük belőle public változón keresztül a következő értékeket:
- currentFps - adott frame-re számított fps érték
- averageFps - másodpercenként számolt fps átlag
- minimumFps - a legkisebb fps, amit a movie produkált
- maximumFps - a legnagyobb fps, amit a movie produkált
terhelés mérés
két metódusunk van ehhez: startLoadMeasure() és stopLoadMeasure(), ezeket a legnagyobb terhelést jelentő függvényünk elejére és végére érdemes beszúrni, esetemben én pl egy renderlést végző függvényt mérek vele. a terhelést a stage.frameRate-hez képest számolja, azaz, ha egy függvény futásideje egyezik az adott framerate reciprokával, akkor a terhelés 100%.
a mérési eredményeink láthatóvá tételéhez elegendő az osztályt hozzáadni a displayList-hez:
addChild( fpsCounter );
és máris ott lesz a jobb alsó sarokban egy kis fps/load% számláló.
a FrameRateCounter.as szabadon letölthető zipelt formátumban.
a bejegyzés trackback címe:http://www.derelict.hu/flashdev/merjunk-terhelest/trackback/









