Had Masa Pelaksanaan dengan Fungsi sleep() dalam PHP
Soalan 1: Adakah masa tidur dikira dalam had masa pelaksanaan?
Fungsi sleep() menjeda pelaksanaan untuk beberapa saat tertentu. Anda mungkin tertanya-tanya jika jeda ini menjejaskan had masa pelaksanaan maksimum untuk skrip PHP anda. Sebagai contoh, jika PHP ditetapkan untuk menguatkuasakan masa pelaksanaan maksimum 30 saat, adakah ia akan memaparkan mesej "masa pelaksanaan maksimum melebihi" jika anda menggunakan tidur(31)?
Jawapan:
Jawapannya bergantung pada sistem pengendalian anda. Di bawah Linux, masa tidur biasanya diabaikan dan tidak dikira dalam had masa pelaksanaan. Walau bagaimanapun, di bawah Windows, masa tidur dikira sebagai masa pelaksanaan.
Soalan 2: Adakah terdapat risiko atau kos prestasi CPU yang dikaitkan dengan menggunakan fungsi sleep()?
Jawapan:
Secara amnya, menggunakan fungsi sleep() tidak menimbulkan sebarang risiko yang ketara. Walau bagaimanapun, adalah penting untuk menggunakannya dengan budi bicara dan mempertimbangkan kesannya terhadap prestasi CPU. Penggunaan sleep() yang berpanjangan boleh membawa kepada peningkatan penggunaan CPU, terutamanya jika skrip anda dilaksanakan di bawah had masa pelaksanaan yang ketat.
Demonstrasi:
Anda boleh mengesahkan tingkah laku fungsi sleep() di bawah sistem pengendalian yang berbeza dengan menjalankan skrip PHP berikut:
sleep(ini_get('max_execution_time') + 10);
Skrip ini menetapkan tidur masa untuk menjadi lebih lama sedikit daripada had masa pelaksanaan maksimum untuk PHP, yang anda boleh dapatkan semula menggunakan fungsi ini_get().
Spoiler: Di bawah Linux, skrip akan dilaksanakan seperti yang diharapkan, mengabaikan masa tidur dan melebihi had masa pelaksanaan. Di bawah Windows, walau bagaimanapun, skrip akan menyebabkan mesej "masa pelaksanaan maksimum melebihi" dipaparkan.
Atas ialah kandungan terperinci Adakah Fungsi `sleep()` PHP Mempengaruhi Had Masa Pelaksanaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!