[php] jak mierzyc dlugosc wykonywanai skrypu?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

[php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

No wlasnie? jak najprowsciej to zrobic? mierzenie etapow funkcja tmie() nic nei daje gdyz zawsze roznica daje 0 (widocznei time stawia stamp wszedzie taki sam). Co radzicie?
Wojciech Kocjan
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: sob gru 14, 2002 10:51 am

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Wojciech Kocjan »

Odpowiedz jest blizej niz Ci sie wydaje ;)

Zerknij tu: http://www.webinside.pl/php/tutoriale/48
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

dzieki wielkie!!! ale mam problem. Dokladnie to samo wfralem na rozne serery i jeden z nich nie mierzy realnego czasu!!! O co chodzi, porownajcie:

http://www.cichos.pl/speed/indexa.php

http://foe.boo.pl/speed/indexa.php
Wojciech Kocjan
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: sob gru 14, 2002 10:51 am

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Wojciech Kocjan »

To nie jest zaden problem.. Tak po prostu jest. Logiczne ze na serwerze z lepszymi parametrami technicznymi (glownie procesor) i szybszym laczem, strona zostanie wygenerowana szybciej, niz np. na serwerze z celeronem 300MHZ postawionym na modemie.

Tak wiec na kazdym z serwerow bedziesz mial rozne czasy generowania.. Im mniejszy tym oczywiscie lepszy serwer..
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

widze ze nei sprawdziles linkow. Problem w tym ze ten drugi to robi dluzej niz ten pierwszy!!! a zawsze jest i tak niby szybki.Np teraz generowal mi strone 10 sekund a napisal ze trwalo to 0,04 sek. Pierwszy link robi to w ok. 6 sek i rzeczywiscie pokazuje 6.21 sek.
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Dawid Pytel »

No to mam pytanie. Skąd wiesz, że skoro Twój skrypt wykonywał się 6,4 sekundy, tak naprawdę robił to w 6 sekund ?

No a teraz najwazniejsza sprawa. Jak możesz zauważyć wzrokowo granice pomiędzy wykonaniem skryptu a rozpoczęciem generowania HTMLa ??
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

Dawid Pytel pisze:No to mam pytanie. Skąd wiesz, że skoro Twój skrypt wykonywał się 6,4 sekundy, tak naprawdę robił to w 6 sekund ?
mozna sie domyslic po tekscie, ze piszac "ok. 6 sek." mial namysli czas mierzony empiryczny - czyli rzeczywisty. Jezeli od wpisania adresu do czasu wygenerowania calej strony mija 6 sek. to znaczy, ze tyle byl generowaqna. Potwierdza to Wasz skrypt dajac taki sam wynik. Wiec o co chodzi?
Moim problem jest to , ze Wasz skrypt nie dziala an innym serwerze, bo chyba mi nie powiecie ze pokazujac ze zrobil to w 4 setne sekundy, a pokazujac mi strone po 10 sek, ze wszytko jest ok. Odnosze takie wrazenie ze chcecie mi to wmowic.
Dawid Pytel pisze:No a teraz najwazniejsza sprawa. Jak możesz zauważyć wzrokowo granice pomiędzy wykonaniem skryptu a rozpoczęciem generowania HTMLa ??
a po co mi to widziec? skrypt mierzy czas calosci (przynajmniej na pierwszym serwerze). Zreszta nie wiem po co ja to mowie - uzywam Waszego skryptu i chyb powinniscie wiedziec jak dziala.
Chcialem sie dowiedziec dlaczego an dwoch serwerach ten skrypt dziala inaczej, a wy mnie przekonujecie ze wszystko jest ok
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Dawid Pytel »

heh...

nie odpowiedziales mi dalej na moje pytanie (przy okazji wyjasnisz SOBIE kilka spraw).

Skrypt liczy czas wykonywania skryptu php na stronie www a nie czas pojawienia sie strony. Powiedzmy, ze Twoj skrypt pobiera rekordy z bazy danych i pozniej przy ich pomocy worzy kod html. Powiedzmy ze zanim przegladrka z tego kodu zlozy cala strone minie 1 minuta ale Twoj skrypt wykonal sie w powiedzmy 0.4 sekundy.

a "tonem" Twojej wiadomosci tylko irytujesz ludzi co nie pomoze Ci w rozwiazaniu problemu.
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

i jak tu sie nie irytowac!!! Pisalem ze ten skrypt liczy calosc generowania strony, lacznie z przeslaniem wyniku do przegladarki. nie powisz mi chyba ze w pierwszym przypadku strona generowana byla przez 6 sek a potem od razu otrzymalem kilkadziesiat kb, a w drugim przypadku serwer zrobil to w 4 setne tyle ze przez 10 sek to sciagalem.To absurd!!! Tym bardziej ze link pierwszy to serer z 3x szybszy od drugiego.
Tak wiec zmienie pytanie: jak to mozliwe ze na pierwszym sererze ten skrypt mierzy czas lacznie ze sciaganiem wygenerowanej strony a na drugim tylko czas gemnerowania na serwerze?
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Dawid Pytel »

No to mam do Ciebie prośbę. Pokaż mi ten skrypt. Zwracam Ci honor jeżeli on liczy całkowity czas pokazania strony. Nigdy sie z czyms takim nie spotkalem!
Tak wiec albo ja sie myle albo Ty nei masz zueplnie pojecia jak dziala strona internetowa (wysylanie jej z serwera).
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

co prawda 2 i 3 wpis wszytko podaja na talerzu, ale dokladnie to rozipsze:

[php]
<?
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();
echo "start: $time_start";
?>
<html>
<?
$txted="<table border='1'>";
while ($zzz<1000){
$txted.="<tr><td>".++$zzz."</td><td>".$zzz*$zzz."</td><td>".$zzz*$zzz*$zzz."</td><td>".$zzz*$zzz*$zzz*$zzz."</td><td>".$zzz*$zzz*$zzz*$zzz*$zzz."</td><td>".$zzz*$zzz*$zzz*$zzz*$zzz*$zzz."</td></tr>";
}
$txted.="</table>";
//echo "generacja tabeli zajela po stronie serwera <b>".$zak." </b>sekund!<br>Wyświetlam tabele - czekaj, potem zejdz na dol - tam bedzie wynik predkosci serwera";
echo "<br><br>";
echo $txted;
?>
</html>
<?
$time_end = getmicrotime();
echo "end: $time_end<br>";
$time = substr($time_end - $time_start, 0, 4);
echo "<b>Strona została wygnerowana w $time sekund.</b>";
?>
[/php]

zobacz tu: http://www.cichos.pl/speed/indexa.php mierzy calkowity czas tworzenia strony, lacznie ze sciaganiem wyniku.
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: Wojciech Jurewicz »

Sam nie jestem do końca pewien, ale na ten błąd mogą składać się dwa czynniki. W jednym przypadku może być lepszy serwer, ale słabsze łącze, a na drugim odwrotnie, stąd ta różnica, no ale ja tylko gdybam...
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: the_foe »

no to aby zabic wam gwozdzia porawilem sktypt:
http://www.cichos.pl/speed/indexa.php

Jeszcze ktos twierdzi ze nie mozna zmierzyc calkowitego czasu generowania strony? Wciaz sie pytam dlaczego nei dziala tak na kazdym serwerze? przynajmniej ja testujac dwa, jednego nie moge zmusic do takiego dzialania jak wyzej - po prostu zawsze zwraca mi tylko czas generacji na serwerze.
Jesli wam to pomoze zobaczcie info serwera:

http://www.cichos.pl/info.php

Co do porzedniej wypowiedzi: juz pisalem, to niemozliwe. Czemu? Bo mierzylem empirycznie (stoperem) czas generacji strony, jest praktycznie identyczny z tym jaki pokazuje wynik skryptu! Tak wiec idac tropem poprzedzajacej wypowiedzi Moderatora, musialbym zalozyc, ze 118 KB strony pojawia sie u mnie w ulamku sekundy, co na laczu 56 kb/s jakie mam w domu wchodzi w sfere science-fiction.

Prosze wiec o rzetelna wypowiedz, a nie probe wmowienia mi ze nie rozumiem istoty server-side. Troche za dlugo sie w to bawie...

Zreszta, wczesniej nie chcailem o tym wspominac, cala sprawa przypomina mi sytuacje kiedy na tym forum tyle ze w sekcji dla klient sajdow ktorys z moderatorow probowal mi wmowic ze nie rozrozniam Javy od JS. Choc moim jedynym "bledem" bylo ze gdzies na poczatku wypowiedzi napisalem w skrocie myslowym "Java" bez "scriptu". Nie istotne bylo, ze sprawa ktora przedstawilem dotyczyla jak byk klienta (chodzilo o auto refersh przegladarki), w temacie napisalem skrot [js] i dzial byl cs. Teraz jest podobnie!!! Przeciez analizujac kod, widzimy ze sparwa nie dotyczy faktu ss czy cs, ale podejscia do funkcji czasu - w omawianym linku widocznie time jest stampowany na koniec, czyli kazde wywolanie funkcji time() niejako rozpoczyna nowy watek... Tyle ze nie widze w php.ini opcji sterujaca takim zachowaniem parsera. Jednak sami przyznacie ze takie podejscie jest logiczne i nie ma nic wspolnego z tym ze niby php wykonuje caly skrypt robi z tego pliczek tesktowy i wysyla to dopiero w calosci do klienta. Bo to nie prawda!!! Przeciez tyle sie mowi o dazeniu PHP do objektowosci, z Waszym podejsciem to ss to raczej nigdy PHP nie dogoni ASP...
ex
Przelotem
Przelotem
Posty: 223
Rejestracja: sob sie 02, 2003 12:25 pm
Kontakt:

Re: [php] jak mierzyc dlugosc wykonywanai skrypu?

Post autor: ex »

zeby obliczyc caly czas od zaczecia generowania kodu az po pokazanie sie na ekranie twojego monitora nie wystarczy sam php, bo on moze jedynie pokazac czas generowania kodu (zalezna od mozliwosci obliczeniowych serwera), a do tego trzeba dodac jeszcze czas przesylania kodu do przegladarki (liczy sie przepustowosc lacza), plus jeszcze czas wygenerowania strony w przegladarce (np. java script, css itp)...
ODPOWIEDZ