Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gotowiec do testowania szybkości skryptów
Forum PHP.pl > Inne > Hydepark
szafranek.net
Miałem wrzucić do działu oceny, ale szkoda zaśmiecać go drobiazgiem, który pisałem niewiele dłużej niż tego posta winksmiley.jpg.

Z ciekawości chciałem dziś sprawdzić czas generowania moich skryptów w różnych sytuacjach (np. gdy używałem wyrażeń regularnych, lub nie). Skończyło się na tym, że napisałem sobie klasę - jest bardzo prosta, ale jeśli komuś nie chce się pisać czegoś takiego samemu, to może skorzystać z gotowca.

Klasa potrafi automatycznie przeładować skrypt, więc można np. kazać jej załadować stronę 500 razy, żeby poznać średni czas jej generowania. Potem można pójść zrobić sobie herbatkę i wrócić, żeby obejrzeć wynik smile.gif.

Przykład użycia poniżej.

  1. <?php
  2.  
  3. require_once('benchmark.php');
  4. $ben = new Benchmark();
  5.  
  6. // zacznij pomiar
  7. $ben->start();
  8.  
  9. /*
  10. Główna część skryptu:
  11. łączenie z bazą, drukowanie strony, etc.
  12. np:
  13. for ($i=0; $i<1000000; $i++) {
  14. // NIC
  15. }
  16. */
  17.  
  18. // koniec pomiaru
  19. $ben->stop();
  20.  
  21. // pokaż wynik od razu:
  22. echo $ben->getTime();
  23.  
  24.  
  25. // albo powtórz test 5 razy i zapisz wyniki do pliku
  26. // po ostatnim pomiarze zostanie też do niego zapisany średni czas ładowania
  27. $ben->repeatTest('results.txt', 5);
  28.  
  29. ?>
bela
znasz tą klasę? Benchmark ?
szafranek.net
Czasem nóż sprawdza się lepiej niż robot kuchenny, a parolinijkowy skrypcik bardziej niż kilkudziesięciokilowy kombajn wymagający PEAR i zależący od kilku innych pakietów winksmiley.jpg.

[PS. A tej klasy z PEARa nie widziałem - dopiero teraz ją sobie ściągnąłem - widzę że nawet nazwy metod mamy podobne cool.gif ]
Sh4dow
a slyszales o xdebug ?
szafranek.net
Owszem smile.gif.
qtchb
kurczę, a możecie jak debilowi powiedzieć, jak to zaimplementować?

Wstawiłem skrypt do pliku footer.php ładowanego na każdej stronie, ale oczywiście wywala mi, że nie można załadować benchmark.php, dokładnie tak się pojawia:

Fatal error: main(): Failed opening required 'benchmark.php' (include_path='.') in c:\usr\apache\httpd\html\footer.php on line 74

chciałbym też dane wkładać do bazy danych, żeby robić sę statystyki, czy jeśli napiszę w skrypcie:
  1. <?php
  2.  
  3. $do_bazy = ($ben->getTime());
  4.  
  5. ?>

to zmienna $do_bazy będzie przechowywać inf o czasie ładowania?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.