0

特にメモリを集中的に使用する機能があり、(その機能の実行中に) 完了するために許可されたメモリを増やしたいと考えています。

PHP関数内で使用するのは悪い習慣ini_set('memory_limit' , '1024M')ですか?関数が完了すると、デフォルト値に戻りますか?

使用価値が高いのは承知しています。それは専用サーバーであり、ジュースがたくさんあります.

例は次のとおりです。

function run_Cron_Processes() {
    ini_set('memory_limit', '1024M');
    memoryIntensive1();
    memoryIntensive2();
    memoryIntensive3();
    //return to default m limit
}
4

4 に答える 4

2
$oldLimit = ini_get( 'memory_limit' );
ini_set( 'memory_limit', '1024M' );
(...)
ini_set( 'memory_limit', $oldLimit );

しかし、それは不要だと思います。スクリプトの実行の最後に、メモリ制限はデフォルト値にリセットされます。

于 2016-03-07T18:34:23.927 に答える
0

私はそれが悪い習慣だとは言いません。あなたはあなたがしなければならないことをしなければなりません。より多くのメモリが必要な場合は、それがその方法です。を増やす必要がある場合もありますmax_execution_time

そうは言っても、「memoryIntensive」関数をチェックして、そこで最適化することをお勧めします。

于 2016-03-07T18:40:07.250 に答える
0

スクリプトの実行後、値はデフォルト値に戻ります。

制限を-1に設定して、スクリプトが必要なすべてのメモリを使用できることを PHP に伝えることもできます。

于 2016-03-07T18:34:30.190 に答える
0
ini_set('memory_limit','-1');

必要なメモリに従って使用され、メモリ側に関連するエラーや通知は返されません。

于 2018-03-15T09:08:54.020 に答える