Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czas generowania strony
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Gdzieś na forum ostatnio widziałem posta dotyczącego pobierania czasu generowania strony. Problem dotyczył innych wartości przy odświeżaniu, tzn ten sam skrypt za każdym razem (z wykorzystaniem microtime() ) wskazywał inny czas. Nie mogę znaleźć tego postu. Jeśli ktoś byłby tak miły i mógłby go wskazać ewentualnie podsunąć pomysł na rozwiązanie problemu będę wdzięczny.

Pozdrawiam
Go to the top of the page
+Quote Post
bogdan89
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


ja bym to zrobił tak:

  1. <?php
  2. $start_time = microtime();
  3.  
  4. //skrypty php.
  5.  
  6. $stop_time = microtime();
  7. $czas_generowania = $stop_time - $start_time;
  8. echo 'Czas generowania strony: '.$czas_generowania.' sek.';
  9. ?>


o to chodzi?
Go to the top of the page
+Quote Post
Jarod
post
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(bogdan89 @ 23.12.2006, 18:12:25 ) *
ja bym to zrobił tak:

  1. <?php
  2. $start_time = microtime();
  3.  
  4. //skrypty php.
  5.  
  6. $stop_time = microtime();
  7. $czas_generowania = $stop_time - $start_time;
  8. echo 'Czas generowania strony: '.$czas_generowania.' sek.';
  9. ?>


o to chodzi?


Dokładnie tak robie tylko, że wynik zaokrąglam do 5 miejsc po przecinku. Ale odśwież sobie stronę prę razy to zobaczysz, że za każdym razem jest inny czas. Zastanawiam się czym to jest spowodowane?
Go to the top of the page
+Quote Post
bogdan89
post
Post #4





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


czas wykonywania skryptow zalezy chyba od procesora serwera... jezeli jest on bardzo obciążony to wykonuje operacje wolniej, a jezeli nie jest obciążony to wykonuje je szybciej...
to jeszcze zalezy od ilosci operacji zawartych w skrypcie.

ale róznice są okiem człowieka niezauważalne.
Go to the top of the page
+Quote Post
Jarod
post
Post #5





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(bogdan89 @ 23.12.2006, 18:59:14 ) *
czas wykonywania skryptow zalezy chyba od procesora serwera... jezeli jest on bardzo obciążony to wykonuje operacje wolniej, a jezeli nie jest obciążony to wykonuje je szybciej...
to jeszcze zalezy od ilosci operacji zawartych w skrypcie.

ale róznice są okiem człowieka niezauważalne.

Napisałem prosty skrypt. Pobiera i wyświetla czas generowania skryptu i nic więcej. Odpalam na localhost i odświeżam strone - za każdym razem wynik jest inny, większy, mniejszy - wygląda na losowy czas.. Dziwne.. :/
Go to the top of the page
+Quote Post
legorek
post
Post #6





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Bo jak odpalasz to na swoim kompie masz jeszcze mnóstwo innych procesów korzystających z zasobów procesora, pamięci itd. Trudno, żeby za każdym razem była precyzja rzędu 1000cznych części sekund. Zrób jakieś bardziej skomplikowane zadanie (np algorytm wyostrzania dużego obrazka) i będziesz widział, że strona sie będzie wykołować np w przedziale 15-16s.
Go to the top of the page
+Quote Post
fx69
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.10.2006
Skąd: świat astralny

Ostrzeżenie: (0%)
-----


ja uzywam tego:

  1. <?php
  2. function get_microtime() {
  3.  list($milis, $s) = explode(" ",microtime());
  4.  return ((float)$milis + (float)$s);
  5.  }
  6. ?>


wywolujesz funkcje na poczatku strony i na koncu. potem odejmujesz i mozesz substr uciac.

Ten post edytował fx69 24.12.2006, 15:04:06
Go to the top of the page
+Quote Post
LBO
post
Post #8





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Różnice w czasie wykonywania skryptów - rzędu tysięcznych sekundy - są jak bardziej normalne. Zależy to od wielu czynników takich jak maszyna, serwer, ilość wykonanych operacji. Czasy nigdy nie będą takie same.
Problem jest gdy wahania tych czasów są znaczne (chociaż i tak to nigdy nie jest wina samego php), a nie wykorzystywane są żadne mechanizmy cache'owania czy optymalizacji. Wtedy przyczynę trzeba znaleźć i zlikwidować.

Ten post edytował LBO 24.12.2006, 15:28:37
Go to the top of the page
+Quote Post
bogdan89
post
Post #9





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


spoko, wiem juz jak zrobic taki skrypt ktory to oblicza, wiem od czego zalezy czas generowania php, ale interesuje mnie jeszcze jedna sprawa: czasami ten czas u mnie jest na minusie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) czy to jest normalne? i jak takie zjawisko wytłumaczyć?
Go to the top of the page
+Quote Post
Jarod
post
Post #10





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(bogdan89 @ 26.12.2006, 10:09:07 ) *
spoko, wiem juz jak zrobic taki skrypt ktory to oblicza, wiem od czego zalezy czas generowania php, ale interesuje mnie jeszcze jedna sprawa: czasami ten czas u mnie jest na minusie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) czy to jest normalne?

Nie.
Cytat(bogdan89 @ 26.12.2006, 10:09:07 ) *
i jak takie zjawisko wytłumaczyć?

Błąd w kodzie.
Go to the top of the page
+Quote Post
bogdan89
post
Post #11





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(J4r0d @ 26.12.2006, 10:23:21 ) *
Błąd w kodzie.


przeciez skrypt masz dokladnie taki jak moj, tyle, ze dodajesz zaokrąglenie do 5 miejsc po przecinku, a ja nie...
Go to the top of the page
+Quote Post
Jarod
post
Post #12





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(bogdan89 @ 26.12.2006, 13:34:25 ) *
przeciez skrypt masz dokladnie taki jak moj, tyle, ze dodajesz zaokrąglenie do 5 miejsc po przecinku, a ja nie...


Pokaż swoją klase i pokaż jak ją wywołujesz. Mój nigdy nie pokazuje czasu ujemnego..
Go to the top of the page
+Quote Post
bogdan89
post
Post #13





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


no zobacz #2 post w tym temacie,
a pod nim jest Twoja odpowiedź.

czasem daje wynik ujemny... no i wlasnie to mnie dziwi... na serwerach nazwa.pl
Go to the top of the page
+Quote Post
Jarod
post
Post #14





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(bogdan89 @ 26.12.2006, 13:54:41 ) *
no zobacz #2 post w tym temacie,
a pod nim jest Twoja odpowiedź.

czasem daje wynik ujemny... no i wlasnie to mnie dziwi... na serwerach nazwa.pl

Przepraszam, wprowadziłem Cię w błąd pisząc, że dokładnie tak samo robie. Bo nie robię tak samo. Mam taką klase:
  1. <?php
  2. class Debugger
  3. {
  4.  
  5. private $_fTimeStart = null;
  6.  
  7. public function __construct()
  8. {
  9. $sTimeStart = explode(' ', microtime());
  10. $this->_fTimeStart = (float)($sTimeStart[1] + $sTimeStart[0]);
  11. }
  12.  
  13. static function getTimeOfResponse()
  14. {
  15. $sTimeEnd = explode(' ', microtime());
  16.  
  17. return round((float)($sTimeEnd[1] + $sTimeEnd[0]) - $this->_fTimeStart, 4);
  18. }
  19. }
  20. ?>


Jak już chcesz używać
  1. <?php
  2. $start_time = microtime();
  3. ?>
to pisz
  1. <?php
  2. $start_time = microtime(1);
  3. ?>
wtedy przelicza na sekundy.. Wtedy nie powinny pojawiać się ujemne wyniki. Zobacz jak zrobiłem w klasie.
Go to the top of the page
+Quote Post
bogdan89
post
Post #15





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


ok. juz kapuje...
wielkie dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 06:56