ホームページ >バックエンド開発 >PHPチュートリアル >PHP の `sleep()` 関数は実行時間制限に影響しますか?
PHP の sleep() 関数による実行時間制限
質問 1: スリープ時間は実行時間制限にカウントされますか?
sleep() 関数は、指定された秒数の間実行を一時停止します。この一時停止が PHP スクリプトの最大実行時間制限に影響を与えるのではないかと疑問に思われるかもしれません。たとえば、PHP が 30 秒の最大実行時間を強制するように設定されている場合、sleep(31) を使用すると「最大実行時間を超過しました」というメッセージが表示されますか?
回答:
答えは、オペレーティング システムによって異なります。 Linux では、通常、スリープ時間は無視され、実行時間制限にはカウントされません。ただし、Windows では、スリープ時間は実行時間としてカウントされます。
質問 2: sleep() 関数の使用に関連するリスクや CPU パフォーマンスのコストはありますか?
回答:
一般に、sleep() 関数の使用には重大なリスクはありません。ただし、慎重に使用し、CPU パフォーマンスへの影響を考慮することが重要です。 sleep() を長時間使用すると、特にスクリプトが厳しい実行時間制限の下で実行されている場合、CPU 使用率が増加する可能性があります。
デモ:
次の PHP スクリプトを実行して、さまざまなオペレーティング システムでの sleep() 関数の動作を確認します。
sleep(ini_get('max_execution_time') + 10);
このスクリプトはスリープを設定します。この時間は、PHP の最大実行時間制限よりわずかに長くなります。これは、ini_get() 関数を使用して取得できます。
スポイラー: Linux では、スクリプトは期待どおりに実行され、無視されます。スリープ時間と実行時間制限を超えています。ただし、Windows では、スクリプトによって「最大実行時間を超過しました」というメッセージが表示されます。
以上がPHP の `sleep()` 関数は実行時間制限に影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。