memory_get_usage () & amp; микропоры ()

Добрый день! У меня есть этот код:

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 Кб, нагрузка +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';

И тогда я получил нормальные результаты. Почему так? Возможно, есть что-то лучше, чем код выше

0

Решение

Ваш код работает. Используемая память занимает несколько байтов; так как округление до 3 цифр, отображается 0kb.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]