W jaki sposób mogę porównywać pewne fragmenty kodu w PHP? Mogę użyć timerów do obliczenia różnic, po prostu nie jestem pewien, czy jest to najlepsze rozwiązanie.Pomiar wydajności PHP
Odpowiedz
Spójrz na XDebug Profiler, aby porównać wydajność i wiele więcej.
Xdebug za Profiler to potężne narzędzie który daje możliwość analizy kodu PHP i określenia zatorów lub ogólnie widzieć który fragmenty kodu są powolne i może użyć zwiększenie prędkości.
Jeśli używasz Linuksa, użyj kcachegrind do wizualizacji wynikowych plików profilu. –
XDebug jest fajne, ale jeśli nie chcesz, aby zainstalować tę bibliotekę, można spróbować wykonać następujące czynności:
Co mogę używać, aby zlokalizować ewentualne szyjki butelki jest:
$benchmark_start = microtime(true);
// Code goes here
$benchmark_stop = microtime(true);
$benchmark_total = $benchmark_stop - $benchmark_start;
echo "The script took ". $benchmark_total." seconds";
nieco bardziej wyrafinowane przykład ręcznego profilowania przy użyciu timerów
działa idealnie dla mnie, szczególnie gdy jestem poproszony o sortowanie rzeczy na niektórych serwerach na żywo tylko z dostępem FTP.
nie trzeba wspominać, że profilowanie jest o wiele ważniejsze (i użyteczne) na serwerze na żywo, a nie na komputerze dewelopera cieplarnianego.
$TIMER['start']=microtime(TRUE);
// some code
$query="SELECT ...";
$TIMER['before q']=microtime(TRUE);
$res=mysql_query($query);
$TIMER['after q']=microtime(TRUE);
while ($row = mysql_fetch_array($res)) {
// some code
}
$TIMER['array filled']=microtime(TRUE);
// some code
$TIMER['pagination']=microtime(TRUE);
if ('127.0.0.1' === $_SERVER['REMOTE_ADDR']) { //I set my IP here
echo "<table border=1><tr><td>name</td><td>so far</td><td>delta</td><td>per cent</td></tr>";
reset($TIMER);
$start=$prev=current($TIMER);
$total=end($TIMER)-$start;
foreach($TIMER as $name => $value) {
$sofar=round($value-$start,3);
$delta=round($value-$prev,3);
$percent=round($delta/$total*100);
echo "<tr><td>$name</td><td>$sofar</td><td>$delta</td><td>$percent</td></tr>";
$prev=$value;
}
echo "</table><>";
}
Nie nazwałbym tego tak wyrafinowanym. – raveren
o tak, masz rację! geniusz byłby bardziej odpowiednim słowem –
- 1. Pomiar wydajności algorytmu klasyfikacji
- 2. Pomiar i monitorowanie wydajności serwera Node.JS
- 3. Pomiar przełączania
- 4. Pomiar czasu wykonywania zadania selera
- 5. Pomiar kosztu brakującej TLB w x86-64
- 6. Dokładny pomiar wielkości obiektów
- 7. Pomiar rozdzielczości `std :: clock()`
- 8. Pomiar tekstu w WPF
- 9. dokładny pomiar czasu
- 10. Javascript równoważny php do wydajności pętli
- 11. Jaki jest koszt wydajności "uwzględnienia" w PHP?
- 12. Testowanie wydajności strony przedniej
- 13. Najprostszy możliwy licznik wydajności Przykład
- 14. Pomiar szerokości tekstu w Qt
- 15. pomiar tekstu na skalowanym płótnie
- 16. Pomiar kampanii Android nie działa
- 17. Pomiar zużycia pamięci strony internetowej
- 18. Jak rozpocząć pomiar w połowie?
- 19. Pomiar rzeczywistego czasu zapytania MySQL
- 20. Pomiar poziomu za pomocą AVAudioEngine
- 21. Jak uzyskać dokładny pomiar pingowania?
- 22. PHP vs MySQL wydajności (jeśli funkcjonuje) w zapytaniu
- 23. __get/__ set/__ pytania dotyczące wydajności połączenia z PHP
- 24. PHP PDO vs normalny benchmark wydajności prędkości mysqli
- 25. Czy długość nazwy zmiennej ma znaczenie dla wydajności w PHP?
- 26. testowanie wydajności witryny internetowej
- 27. Pomiar ruchu w sieci z Indy
- 28. Pomiar pamięci szczytowej długotrwałego procesu w Linuksie
- 29. Pomiar czasu wykonywania kodu C (Linux)
- 30. Pomiar semantycznego podobieństwa między dwoma zwrotami
Wszyscy żyjemy nie w najlepszym świecie. Zegary są całkiem użyteczne i bardzo przenośne. Zajmie ci to kilka minut, aby zlokalizować wąskie gardło. –