0

良い一日!私はこのコードを持っています:

final class bench
{
    protected static $start_time;

    protected static $start_memory;

   public static function start()
   {
        self::$start_time   = microtime(true);
        self::$start_memory = memory_get_usage(true)/1024;
   }

   public static function finish()
   {
       echo PHP_EOL.'+'.round(memory_get_usage(true)/1024 - self::$start_memory, 3).' Kb load';
       echo PHP_EOL.'+'.round(microtime(true) - self::$start_time, 3).' Time.';
   }
}

しかし、ここでこの小さなコードを使用したい場合:

bench::start();

$array = ['f', 'g', 'f', 'd', 'ff'];

foreach($array as $key=>$value)
{
    echo $key.'f'.$value;
}

bench::finish();

悪い結果が出ています。+0 Kb 負荷 +0 時間と言っています。

だから私はこの例を使用しようとしました:

$start = memory_get_usage()/1024 . "\n";

for ($i = 1; $i <= 100; $i++) {
    echo $i;
}

echo '<br/>+'.round(memory_get_usage()/1024 - $start, 3).' Kb load';

すると普通の結果になりました。なんでそうなの?おそらく、上記のコードよりも優れたものがあります

4

1 に答える 1

0

あなたのコードは機能しています。使用されるメモリは数バイトです。割り算を3桁に四捨五入するため、0kbと表示されます。

于 2016-05-17T15:07:55.507 に答える