php5.2.0ではメモリ管理が大幅に改善され、場合によってはメモリが解放されない問題は解消されました。
PHP スクリプト (mem.php) をテストするには、echo N> と sleep を使用して、ステータスを検出するためにスクリプトを特定の段階で一時停止するように制御します。
コードをコピー コードは次のとおりです。
echo '1>>';
sleep(5);
$o = array();
for ($i=0;$i $o[]=' aaaaaaaaaaaaaaaaa';
echo '2>>';
unset($o); '; 🎜>while (true) {
echo '..';
}
?> メモリ使用量を監視する Bash スクリプト (注: inside mem" は上記の php スクリプト名から取得されます):
while true;do clear;ps au|grep -v "(vi|grep)"|grep "(mem|RSS)";sleep 2 ; 完了;
以下は、PHP 5.1.6 および 5.2.0 を使用した 3 つの状態 (配列作成前、配列作成後、配列破棄後) の $/usr/local/bin/php mem.php プロセスです。同じ設定パラメーターを使用しました) RSS (メモリ使用量の値、単位 KB) のテスト結果。
php5.1.6:
3164
17572
PHP5.2.0:
4088
14400
4424
見ることができますバージョン 5.1.6 では、配列の設定を解除した後、メモリはプロセスから解放されませんが、php プロセスでは引き続き再利用できますが、システム内の他のプロセスでは使用できません。そして、5.2.0 ではメモリが大幅に解放されます。
また、最初は 5.2.0 のメモリ使用量が 5.1.6 よりも数 kb 多かったことがわかります。これは、5.2.0 にいくつかの新しい機能が追加されたためです。正常です。
さらに、php5.2.0 のメモリ割り当ても大幅に改善されており、公式には、emalloc() が呼び出されるたびに、memory_limit の検出が要求されたメモリ データ ブロックを直接検出するように変更されています。システム (ブロック)。もっと詳しく知りたい友達は、自分でコードを勉強することができます。メモリ割り当ての実装が変更されたため、memory_limit でメモリ制御をより正確に制御できるようになりました。つまり、以前の PHP コードで、エラーなしでメモリ使用量がmemory_limit を超えた場合、PHP5.2.0 レポートに含まれる可能性があります。エラーです。この改善のバランスをとるために、PHP5.2.0 のデフォルトのmemory_limit は以前の 8MB から 16MB に変更されました (find . -name *c -type f |xargs cat |grep memory_limit)。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
