Chcę wiedzieć, ile milisekund zajmuje wykonanie pętli for PHP.
Znam strukturę ogólnego algorytmu, ale nie mam pojęcia, jak zaimplementować go w PHP:
Begin
init1 = timer(); // where timer() is the amount of milliseconds from midnight
the loop begin
some code
the loop end
total = timer() - init1;
End
Odpowiedzi:
Możesz do tego użyć
microtime
funkcji. Z dokumentacji :Przykładowe użycie:
źródło
microtime(true)
jeśli chcesz wykonać obliczenia z wartością zwracaną.get_as_float
astrue
) da wyniki w kilka sekund , zgodnie z dokumentacją PHP.get_as_float
taktrue
,microtime()
zwraca wartość reprezentującą sekundy ...$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
(Więcej informacji w odpowiedzi poniżej .)Możesz używać
microtime(true)
następujących sposobów:Umieść to na początku pliku php:
// Twój kod skryptu jest tutaj
Umieść to na końcu pliku php:
To da ci wynik
minutes
.źródło
Możesz używać
REQUEST_TIME
z$_SERVER
tablicy superglobalnej. Z dokumentacji :W ten sposób nie musisz zapisywać znacznika czasu na początku skryptu. Możesz po prostu zrobić:
Tutaj
$time
zawierałby czas, jaki upłynął od rozpoczęcia skryptu, w sekundach, z dokładnością do mikrosekund (np.1.341
Przez 1 sekundę i 341 mikrosekund)Więcej informacji:
Dokumentacja PHP :
$_SERVER
zmienne imicrotime
funkcjaźródło
$start = $_SERVER["REQUEST_TIME_FLOAT"]; $myscript = microtime(true); $bootstrap = $myscript - $start; ...do stuff ...; $myscripttime = microtime(true) - $myscript;
$myscripttime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
na końcu skryptu bez konieczności zapisywania znacznika czasu na początku.$time
różnica będzie zawierać się w sekundach , a nie w mikrosekundach .1.1
odpowiada 1 sekundzie + 100 mikrosekund.Utwórz plik loadtime.php
Niż na początku skryptu, po
<?php
napisaniuinclude 'loadtime.php'; $loadtime=new loadTime();
Po załadowaniu strony na końcu zostanie napisane „Załadowano za x sekund”
źródło
</html>
tagu zamykającym, który jest nieprawidłowyźródło
Zobacz microtime () .
źródło
Oto funkcja, która wykonuje wykonanie dowolnego fragmentu kodu PHP, podobnie jak moduł timeit Pythona: https://gist.github.com/flaviovs/35aab0e85852e548a60a
Jak tego użyć:
Wynik:
Uwaga: Jestem autorem tej treści
EDYCJA: timeit jest teraz osobnym, niezależnym projektem na https://github.com/flaviovs/timeit
źródło
Masz dobry pomysł, z wyjątkiem tego, że dzięki funkcji microtime () można uzyskać bardziej precyzyjny czas .
Jeśli zawartość pętli jest szybka, możliwe, że pozorny czas, który upłynął, wyniesie zero. Jeśli tak, owiń kolejną pętlę wokół kodu i wywołuj go wielokrotnie. Pamiętaj, aby podzielić różnicę przez liczbę iteracji, aby uzyskać jeden raz. Mam profilowany kod, który wymagał 10 000 000 iteracji, aby uzyskać spójne, wiarygodne wyniki czasowe.
źródło
Myślałem, że podzielę się funkcją, którą razem stworzyłem. Mamy nadzieję, że pozwoli Ci to zaoszczędzić czas.
Pierwotnie był używany do śledzenia czasu skryptu tekstowego, więc wynik jest w formie tekstowej. Ale jeśli chcesz, możesz łatwo zmodyfikować go do formatu HTML.
Wykona wszystkie obliczenia dla ciebie, ile czasu spędziłeś od początku skryptu i na każdym kroku. Formatuje wszystkie dane wyjściowe z dokładnością do 3 miejsc po przecinku. (Do milisekund).
Po skopiowaniu go na początek skryptu wystarczy umieścić wywołania funkcji recordTime po każdym utworze, który ma zostać określony.
Skopiuj to na górę pliku skryptu:
Aby śledzić upływający czas, po prostu wykonaj:
Na przykład:
Daje dane wyjściowe w następujący sposób:
Mam nadzieję, że to komuś pomoże!
źródło
Oto bardzo prosta i krótka metoda
źródło
jeśli chcesz wyświetlić ten czas w sekundach:
źródło
Oto implementacja, która zwraca ułamek sekundy (tj. 1,321 sekundy)
źródło
Oto mój skrypt do pomiaru średniego czasu
źródło
Możesz znaleźć czas wykonania w sekundę za pomocą jednej funkcji.
źródło