有人可以澄清memory_get_usage()的$real_usage参数的确切区别是什么?
manual说:
Set this to TRUE to get the real size of memory allocated from system.
If not set or FALSE only the memory used by emalloc() is reported.
但有什么区别?
哪个值与memory_limit INI设置相当?
对于一些长时间运行的脚本,我得到的东西像250MB的实际使用和只有50MB的emalloc使用.怎么可能?
我正在尝试分析一些内存泄漏问题,而memory_get_usage()是我需要充分理解的重要指标.谢谢.
真正的内存是为PHP进程保留的内存量. PHP保留大块内存,这将是< = memory_limit,并且可能在脚本执行期间增加.例如.如果它填满了一个块,然后尝试分配一个新的变量,它将保留另一个块. 如果将参数设置为FALSE,则它仅报告PHP在保留的内存中实际使用的内存量.每次分配到新变量或调用函数等时,这将增加. 如果您对实际使用的内存量感兴趣,那么您将需要真正的内存. 如果您正在调试或尝试调整一段代码,则可能对emalloc()内存更感兴趣.这将允许您在分配或函数调用之前和之后检查内存并计算增量.