http://php.net/manual/de/function.memory-get-peak-usage.php
指出默认情况下将返回emalloc()
(用c ++编写的内存管理器)中的值。
在什么情况下我应该使用true
作为参数?
答案 0 :(得分:5)
据我所知,答案是:
memory_get_peak_usage(true)
当你需要了解你的应用程序的全部用途,包括所有类型的管理费用等。当你想知道你的应用程序有多重时,这很方便。 true
通常会将数字舍入到更大的数字,因为您不能只从RAM分配729 KiloBytes,您的应用程序需要1024 KiloBytes。
memory_get_peak_usage()
在您想要找出哪种“执行方法”最轻量级时非常方便,因此您可以将尽可能多的操作塞入已分配的1024 KiloBytes中。
答案 1 :(得分:0)
很难在网络上找到关于此的具体信息,所以想在这里分享一些发现,尽管这是一个老问题。
在调试“Allowed Memory Size of X Bytes Exhausted”错误时,我们想找出脚本中内存较高的位置,因为这意味着我们使用更多内存作为 memory_limit 设置。
为此,memory_get_peak_usage 函数很方便,因为它显示了我们使用最多时使用了多少内存。
调试超出 memory_limit 的正确值是 memory_get_peak_usage(true)(带有 true 参数)。如果超过此值,则达到了 PHP 的 memory_limit,将抛出致命错误“Allowed memory size of X Bytes Exhausted”。