| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
php debug timeneon 23.05.03 13:33 laskee suoritusaikoja debuggausta varten
<?php /* * thanks must go to Allan Kent * original code was made by Allan Kent * neon <neon@neon-line.net> made some fixes */ class PHP_dtime { /* * @array points * muuttuja johon timestampit tallennetaan */ var $points = array(); /* * void start(void) * public * aloitetaan */ function start() { if(!function_exists("bcsub")) trigger_error("function bcsub() doesn't exist",256); $this->addmark("Start"); } /* * void stop(void) * public * lopetetaan */ function stop() { $this->addmark("Stop"); } /* * void addmark(string mark_name) * public * lisätään timestamppi merkille */ function addmark($name) { $markertime = $this->__jointime(microtime()); $ae = count($this->points); $this->points[$ae][0] = $markertime; $this->points[$ae][1] = $name; } /* * float __jointime(string mtime) * private * muutetaan liukuluvuksi muotoon */ function __jointime($mtime) { $timeparts = explode(" ",$mtime); $finaltime = $timeparts[1].substr($timeparts[0],1); return $finaltime; } /* * void output(void) * public * tulostetaan kerätty data */ function output() { echo "<table border=0 cellspacing=5 cellpadding=5>\n"; echo "<tr><td>id</td><td>point</td><td>chunk</td><td>total</td></tr>\n"; echo "<tr>\n"; echo "<td>0</td>"; echo "<td>".$this->points[0][1]."</td>"; echo "<td>0.0000000000</td><td>0.00000000000</td>\n"; echo "</tr>\n"; $last = (float)0; for ($i = 1; $i < count($this->points);$i++) { echo "<tr>\n"; echo "<td>".$i."</td>"; echo "<td>".$this->points[$i][1]."</td>"; $time = round(((float)$this->points[$i][0]-(float)$this->points[$i-1][0]),10); $gap = (float)round($this->points[$i][0]-$this->points[0][0],11); $last = $time; echo "<td>".$time."</td>"; echo "<td>".$gap."</td>"; echo "</tr>\n"; } echo "</table>"; } } /* **** for example ****** $timer = &new PHP_dtime; $timer->start(); $timer->addmark("mark 1"); $timer->addmark("mark 2"); $timer->addmark("mark 3"); $timer->stop(); $timer->output(); ********************** */ ?> Akiro 15:28 23.5.03 Ihan kätevän oloinen jos etsitään pullonkaulaa skriptistä.. d0ggie 16:03 23.5.03 Näytää oikein kivalta. pikkumyy 16:05 26.5.03 Ihan hauska. Tosin toi output-metodi vois ajaa itse ton stopin ja antaa arvon vasta kun muut 'mark'it on rendattu. Lisäksi aika ja tunnus-kohdat voisivat olla ihan nimillään eivätkä 0 ja 1. Myös bcsub() -funktion käyttö on mielestäni melkoisen turhaa, vaikkakin ne nykyjään näyttävät olevan defaulttina päällä. Eikö samaa olisi voinut tehdä round(((float)$toka-(float)$eka,10)); tms? pikkumyy 16:05 26.5.03 äh meni sulut pikkasen väkärälleen :/ |
![]() Haku
|