2012-01-14 4 views
2

私のプロジェクトでは、自分のフレームワークを使用しています。自分のロギング時間とメモリを使用していますか?今私は、私のメモリ使用統計が異なる環境で異なることを発見しました。ここでは、ローカルWindowsとプロダクションVPS Fedoraという2つの環境を意味します。ローカル(Windows)とVPS(Fedora)のPHPメモリ使用量の違い

<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> 

すべてがこの行を除いて、大丈夫です、差を与える:ここで

はロガー図であるWindowsでは

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

は私がおよそキロバイト持っているが、用VPS Fedoraの KBと同じリクエストです。

私もこの含む同じtest.phpをファイルに対してテストしていました:

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

    echo memory_get_usage(); 
?> 

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

ローカルマシン(Windowsの場合): 生産機械(Fedoraの):

eAcceleratorまたはxCacheはこの統計情報に影響を及ぼしますか?それとも私が間違っているの?

+3

ここには**トン**の変数がありますが、そのうちの最小のものがあなたのコードです。 – Brad

+0

全く異なる2つのシステムは、異なるメモリ使用パターンを示します。実際には驚きはありません... – deceze

+0

6回以上...?それは本当に驚くべきことです... – devdRew

答えて

1

PHP 5.2.x以降、memory_get_usage()関数にはパラメータがあります。

int memory_get_usage ([ bool $real_usage = false ]) 

php.net、$ real_usageによるとは次のとおりです。システムから割り当てられたメモリの実際のサイズを取得するにはTRUEに設定し

。設定されていない場合、または偽の場合は、emalloc()によって使用されるメモリのみが報告されます。

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

+0

これは同じですが違いはあまりありません: '524288' /' 786432' – devdRew

+0

PHPをCGIとしてロードしようとします...ありがとうございます。 – devdRew

1

PHPはLinuxでApacheの一部として動作し、Windowsではスタンドアロンとして動作します。多分それはメモリの違いを意味する可能性がありますか?

関連する問題