memory_get_peak_usage(true)有什么作用?

时间:2013-09-19 15:39:25

标签: php

PHP manual说:

  

int memory_get_peak_usage ([ bool $real_usage = false ] )

     

返回已分配给PHP脚本的内存峰值(以字节为单位)。

     

参数

     

real_usage

     

将此值设置为TRUE以获取从系统分配的实际内存大小。如果未设置或FALSE,则仅报告emalloc()使用的内存。

那么emalloc()如何不是真正的用法,以及TRUE如何计算真正的内存使用情况呢?

This question on StackOverflow问同样的事情,但唯一的答案并没有深入到关于计算如何完成的细节,除了将一些分配四舍五入到下一个千字节。

当您使用FALSETRUE时,有关发生在幕后发生的事情的更广泛答案?

1 个答案:

答案 0 :(得分:3)

如上所述,这个问题是重复的。

但是,我想我应该从不同的答案和评论中总结我的理解:

  • memory_get_peak_usage(false)返回PHP脚本使用的确切内存。用于比较PHP脚本不同部分的确切内存消耗。
  • memory_get_peak_usage(true)将从系统分配的内存返回给PHP脚本,它总是更高,因为Zend引擎以256KB块的形式分配内存。用于了解给定PHP脚本对系统的实际影响。

基本上,memory_get_peak_usage(true)应该memory_get_peak_usage(false)四舍五入到下一个256KB