首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >memory_get_usage() & microtime()

memory_get_usage() & microtime()
EN

Stack Overflow用户
提问于 2016-05-17 15:01:09
回答 1查看 109关注 0票数 0

日安!我有这样的代码:

代码语言:javascript
复制
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.';
   }
}

但当我想在这里使用这个小代码时:

代码语言:javascript
复制
bench::start();

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

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

bench::finish();

我的成绩很差。意思是我+0KB加载+0次。

所以我试着用这个例子:

代码语言:javascript
复制
$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';

然后我得到了正常的结果。为什么会这样呢?也许,有比上面的代码更好的东西

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 15:07:55

你的代码有效了。所使用的内存是几个字节;因为除法是3位,所以显示了0kb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37279757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档