PHP的memory_get_peak_usage有多可靠?

时间:2013-06-24 07:18:47

标签: php

我一直在编写我编写的PHP类的基准测试。它遍历MySQL表,因此您可以通过向其发送唯一ID来执行诸如获取给定查询的下一个和上一个记录之类的操作。该课程允许您以两种方式完成此任务:

  1. 将整个结果集加载到PHP变量中,并使用PHP循环遍历数组来获取上一个/下一个记录

  2. 执行两个MySQL查询,只需将上一个/下一个记录ID发送回PHP

  3. 我已经设置了一个包含大约1,000,000条记录的测试表;表大小约为25 MB。

    考虑到这一点,我希望方法1占用比方法2更多的内存,因为整个结果集被加载到PHP变量中(尽管只有一个列)。但是,当我调用memory_get_peak_usage时,内存总是大约0.5 MB。如果我将true作为参数传递,则返回~0.75 MB。具有讽刺意味的是,方法2返回的内存使用率略高于方法1.我猜测基于表结构和大小方法1应该比方法2使用大约10 MB,但它没有。

    PHP的memory_get_peak_usage有多可靠? PHP的内存管理是否有一些聪明的功能,使得它的使用量远低于您认为的需要?

    感谢。

0 个答案:

没有答案