2012-03-05 8 views
1

ファイル内に次のコードがあります(Terminal経由で直接実行しているか、Webページにアクセスしても違いはありません)。PHP ini_set max_execution_timeとmemory_limitが動作しない

error_reporting(E_ALL^E_NOTICE); 
ini_set('display_errors', true); 
ini_set('max_execution_time', 1); 
ini_set('memory_limit', '512M'); 
sleep(2); 
echo ini_get('max_execution_time'); 

そして、1を出力します。実行時間が過ぎていると言って、エラーを投げてはいけませんか? phpinfo()から

は私が取得:それは眠っている間に、それは任意のコードを実行されていないため、

max_execution_time 1 55 
memory_limit 512M 1024M 

答えて

1

スリープ()時間が実行時間にカウントされません。

注:

関数set_time_limit()と設定ディレクティブmax_execution_timeは のみスクリプト 自体の実行時間に影響を与えます。 スクリプトを実行している時間が最大であると判断した場合、system()、ストリーム操作、 データベースクエリなどを使用したシステムコールなど、スクリプトの実行 の実行以外で発生した時間は含まれません。 Windowsの では、測定された時間が実際のものとは異なります。

これは、sleep()とset_time_limit()の両方のコメントで数回述べられているように、sleep()を含みます。

riki151205 - 6月 - 2007年5時29

ことに注意してください、Linuxで、 睡眠時間は無視されますが、Windowsの下で、それが実行時間としてカウントされます。

+0

wow!どうもありがとう!実際に私は 'system()'コマンドを使用していましたが、これは時間がかかりすぎて、なぜスクリプトが停止していないのか不思議でした。 memory_limitが 'system()'コマンドに影響するかどうか? –

+1

exec()の2番目の引数を使用している場合は、実行されたコマンドの出力から各配列を取り出してPHPメモリを使用します –

関連する問題