php - ローカル(Windows)とVPS(Fedora)でのPHPメモリ使用量の違い

php linux windows memory-management

私のプロジェクトでは、独自のフレームワークを使用し、必ず独自のロギング時間とメモリを使用しています。今、私は私のメモリ使用量の統計が異なる環境で異なることがわかりました。ここで私は2つの環境を意味します:ローカルWindowsと運用VPS Fedora。

これはロガービューです:

<style>
    div.lt-timer {
        opacity: 0.5; background: #FFF; color: #777; border-radius: 5px; border: 1px solid #CCC;
        font-size: 0.85em; position: fixed; max-width: 300px; max-height: 600px; overflow: auto;
        bottom: 10px; right: 10px; padding: 5px;
    }
    div.lt-timer h4 { text-align: center; font-weight: 700; }
</style>
<div class="lt-timer">
    <h4><?php echo $timer->getName(); ?></h4>
    <?php echo nl2br(implode('', $timer->getPoints())); ?>
    <h4>Total used memory: <?php echo round(memory_get_usage() / 1024, 2); ?> KB</h4>
</div>


違いが出るこの行を除いて、すべてが正常です。

<h4>Total used memory: <?php echo round(memory_get_usage() / 1024, 2); ?> KB</h4>


Windowsでは約598 KBありますが、同じリクエストでVPS Fedoraに2976 KBあります。

これを含む同じtest.phpファイルもテストしました。

<?php
    $a = 999;
    $b = 999;
    $c = 999;

    echo memory_get_usage();
?>


そして、それは私が得たものです:

ローカルマシン(Windows):329280
生産機械(Fedora):633392

eAcceleratorまたはxCacheはこの統計に影響を与える可能性がありますか?それともどこが間違っているのですか?
答え
PHP 5.2.x以降、memory_get_usage()関数にはパラメーターがあります。

 int memory_get_usage  ([ bool $real_usage = false  ] )


php.netによると、$ real_usageは次のとおりです。


システムから割り当てられたメモリの実際のサイズを取得するには、これをTRUEに設定します。設定されていないかFALSEの場合、emalloc()が使用するメモリのみが報告されます。


さらに、some sourcesは、getmypid()を使用してプロセスIDによってメモリ使用量を正しく取得するには、ApacheでPHPをCGIとしてロードする必要があると述べています。
関連記事

php - 通知:非オブジェクトのプロパティを取得しようとしています

php - フォームフィールドにphp / mysqlを入力する最も面倒な方法はありますか?

php - このmysql / phpクエリをどのように最適化できますか?

php - MySQLの親子テーブルにより、データベース呼び出しが減少するか、PHPでマージされます

php - 同じ名前のバリデーターを持つ複数のチェックボックス

php - .load()を使用して参照URLに従って特定のコンテンツIDをロードするにはどうすればよいですか

php - PHPおよびmySQLでの複数のSELECTクエリと結果のループ

php - Yiiカスタム検証とサーバー側検証?

php - symfonyテンプレートのcssファイルの画像にアクセスする方法

php - ファイルのアップロード時のPHPエラー