Saya ingin tahu berapa milidetik yang diperlukan untuk dieksekusi oleh PHP-loop.
Saya tahu struktur algoritme generik, tetapi tidak tahu cara mengimplementasikannya dalam 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
Jawaban:
Anda dapat menggunakan
microtime
fungsi untuk ini. Dari dokumentasi :Contoh penggunaan:
sumber
microtime(true)
jika ingin melakukan perhitungan dengan nilai balik.get_as_float
sebagaitrue
) akan memberi Anda hasil dalam hitungan detik , menurut dokumentasi PHP.get_as_float
adatrue
,microtime()
mengembalikan nilai yang mewakili detik ...$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
(Info selengkapnya dalam jawaban di bawah ini .)Anda dapat menggunakan
microtime(true)
sopan santun berikut:Letakkan ini di awal file php Anda:
// kode skripmu ada di sini
Letakkan ini di akhir file php Anda:
Ini akan menampilkan hasil Anda
minutes
.sumber
Anda dapat menggunakan
REQUEST_TIME
dari$_SERVER
array superglobal. Dari dokumentasi :Dengan cara ini Anda tidak perlu menyimpan cap waktu di awal skrip Anda. Anda bisa melakukannya:
Di sini,
$time
akan berisi waktu yang telah berlalu sejak awal skrip dalam hitungan detik, dengan ketelitian mikrodetik (mis.1.341
Selama 1 detik dan 341 mikrodetik)Info lebih lanjut:
Dokumentasi PHP :
$_SERVER
variabel danmicrotime
fungsisumber
$start = $_SERVER["REQUEST_TIME_FLOAT"]; $myscript = microtime(true); $bootstrap = $myscript - $start; ...do stuff ...; $myscripttime = microtime(true) - $myscript;
$myscripttime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
di akhir skrip Anda tanpa harus menyimpan cap waktu di awal.$time
akan berisi perbedaan dalam hitungan detik , bukan dalam mikrodetik .1.1
sama dengan 1 detik + 100 mikrodetik.Buat file loadtime.php
Daripada di awal skrip Anda, setelah
<?php
menulisinclude 'loadtime.php'; $loadtime=new loadTime();
Ketika halaman dimuat di akhir akan tertulis "Dimuat dalam x detik"
sumber
</html>
tag penutup yang tidak validsumber
Lihat microtime () .
sumber
Berikut adalah fungsi yang kali mengeksekusi bagian kode PHP, seperti halnya modul timeit Python: https://gist.github.com/flaviovs/35aab0e85852e548a60a
Bagaimana cara menggunakannya:
Hasil:
Penafian: Saya adalah penulis dari Gist ini
EDIT: timeit sekarang menjadi proyek mandiri yang terpisah di https://github.com/flaviovs/timeit
sumber
Anda memiliki ide yang tepat, kecuali waktu yang lebih tepat tersedia dengan fungsi microtime () .
Jika apa yang ada di dalam loop cepat, ada kemungkinan bahwa waktu yang telah berlalu akan menjadi nol. Jika demikian, bungkus lingkaran lain di sekitar kode dan panggil berulang kali. Pastikan untuk membagi perbedaan dengan jumlah iterasi untuk mendapatkan waktu per-sekali. Saya telah membuat kode yang membutuhkan 10.000.000 iterasi untuk mendapatkan hasil yang konsisten dan dapat diandalkan.
sumber
Saya pikir saya akan berbagi fungsi yang saya kumpulkan. Semoga ini bisa menghemat waktu Anda.
Ini awalnya digunakan untuk melacak waktu skrip berbasis teks, sehingga hasilnya dalam bentuk teks. Tetapi Anda dapat dengan mudah memodifikasinya menjadi HTML jika Anda mau.
Ini akan melakukan semua perhitungan untuk Anda untuk berapa banyak waktu yang telah dihabiskan sejak awal skrip dan di setiap langkah. Ini memformat semua output dengan 3 desimal presisi. (Turun ke milidetik.)
Setelah Anda menyalinnya ke bagian atas skrip Anda, yang Anda lakukan hanyalah meletakkan fungsi recordTime setelah setiap bagian yang Anda inginkan.
Salin ini ke bagian atas file skrip Anda:
Untuk melacak waktu yang berlalu, lakukan saja:
Sebagai contoh:
Memberikan output seperti ini:
Semoga ini bisa membantu seseorang!
sumber
Ini metode yang sangat sederhana dan singkat
sumber
jika Anda ingin menampilkan waktu itu dalam detik:
sumber
Berikut ini adalah implementasi yang mengembalikan pecahan detik (yaitu 1,321 detik)
sumber
Ini skrip saya untuk mengukur waktu rata-rata
sumber
Anda dapat menemukan waktu eksekusi di tempat kedua dengan satu fungsi.
sumber