Jak policzyć czas wykonywania skryptu, generowania strony PHP
Aby policzyć czas wykonania skryptu użyje funkcji getmicrotime().
Listing
<?php
// zapisujemy czas początkowy
$start = microtime();
/* właściwa część kodu */
// np. pętla "nicnierobiąca" z milionem iteracji
for($i=1;$i<=1000000;$i++);
/* właściwa część kodu - koniec */
// zapisujemy czas końcowy
$koniec = microtime();
// proste operacje na zapisanych czasach
// w celu wyswietlenia gotowego wyniku
$start = explode(' ', $start);
$koniec = explode(' ', $koniec);
$roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
// wyświetlenie wyniku
echo 'Skrypt wykonał się w '.$roznica.' sekund.';
?>
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
Czy da się jakoś ograniczyć liczbę cyfr po przecinku np. do pięciu?
autor: Mayke512 | 114 | 2009-03-06 20:20:41
Tak, wystarczy później dodać podany skrypt:
autor: Divix | 115 | 2009-03-06 20:43:02
chyba coś mi nie wyszło bo nie działa ;p
- Zobacz kod dodany do tego wpisu
-
<?php
// zapisujemy czas początkowy
$start = microtime();
/* właściwa część kodu */
// np. pętla "nicnierobiąca" z milionem iteracji
for($i=1;$i<=1000000;$i++);
/* właściwa część kodu - koniec */
// zapisujemy czas końcowy
$koniec = microtime();
// proste operacje na zapisanych czasach
// w celu wyswietlenia gotowego wyniku
$start = explode(' ', $start);
$koniec = explode(' ', $koniec);
$nowa_roznica = round($roznica, 5); //gdzie 5 wskazuje ilość liczb po przecinku
$roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
// wyświetlenie wyniku
echo 'Wygenerowano w '.$roznica.' sekund.'; ?>
-
autor: Mayke512 | 118 | 2009-03-10 14:21:04
Właśnie sprawdziłem działa OK, i to z tego kodu co wkleiłeś, więc nie wiem :}
autor: Igor | 119 | 2009-03-10 15:45:26
No to nie wiem :)
Sprawdziłem na localhost, sprawdziłem na ftp i nigdzie nie działa.
Nic sie nie zmienia ciągle mam:
Wygenerowano w 0.15702104568481 sekund (i podobne liczby)
Może da się to zrobić jakoś inaczej? ;p
autor: Mayke512 | 120 | 2009-03-10 17:09:42
Źle robisz należy dać zmienną $nowa_roznica tuż przed echo, oraz wyświetlić $nowa_roznica zmienną, tak jak tutaj:
- Zobacz kod dodany do tego wpisu
-
*
<?php
// zapisujemy czas początkowy
$start = microtime();
/* właściwa część kodu */
// np. pętla "nicnierobiąca" z milionem iteracji
for($i=1;$i<=1000000;$i++);
/* właściwa część kodu - koniec */
// zapisujemy czas końcowy
$koniec = microtime();
// proste operacje na zapisanych czasach
// w celu wyswietlenia gotowego wyniku
$start = explode(' ', $start);
$koniec = explode(' ', $koniec);
$roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
$nowa_roznica = round($roznica, 5); //gdzie 5 wskazuje ilość liczb po przecinku
// wyświetlenie wyniku
echo 'Wygenerowano w '.$nowa_roznica.' sekund.'; ?>
-
autor: Divix | 121 | 2009-03-10 17:19:06
Znalazłem w googlach nieco inaczej i działa ;p
Daje kod, może się komuś przyda (opisałem najważniejszą funkcje)
- Zobacz kod dodany do tego wpisu
-
<html>
<?php
function cgs()
{
$czas = explode(" ", microtime());
$a = (double)$czas[0];
$b = (double)$czas[1];
return $a + $b;
}
$start = cgs();
?>
<?php
$koniec = cgs();
$ile = $koniec - $start;
echo "Strona wygenerowana w " . substr($ile, 0, 5) . " sek."; // 5 to liczba znaków w wyniku czyli np. 2.5968 to 6 znaków.
?>
</html>
-
autor: Mayke512 | 122 | 2009-03-10 17:22:40
Prosty sposób - dwie linie. W s., 5 miejsc po przecinku.
autor: Dawid Madzia | 424 | 2009-08-20 10:51:22
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno