技术开发 频道

使用PHP 5.2 中新的内存管理器

三    在这个简单示例中,我们首先回转了直接调用 memory_get_usage() 的结果,代码注释中显示可能在作者的系统中有 36640 字节的常见结果。然后我们使用 4,242 个 “Hello” 副本来装载 $a 并再次运行函数。图 1 中可以看到此简单应用的输出。

图 1. memory_get_usage() 的示例输出

    没有 memory_get_peak_usage() 的示例,因为两者十分相似,语法是相同的。但是,对于清单 1 中的示例代码,将只有一个结果,即当时的最高内存使用量。让我们看一看清单 2。

清单 2. memory_get_peak_usage() 示例

<?php // This is only an example, the numbers below will // differ depending on your system echo memory_get_peak_usage() . "\n"; // 36640 $a = str_repeat("Hello", 4242); echo memory_get_peak_usage() . "\n"; // 57960 unset($a); echo memory_get_peak_usage() . "\n"; // 36744 ?>

    清单 2 中的代码跟图 1 一样,但是 memory_get_usage() 已经替换为 memory_get_peak_usage()。在我们用 4242 个 “Hello” 副本填充 $a 之前,输出都不会有多大更改。内存跳升至 57960,表示到目前为止的峰值。当检查内存使用量峰值时,得到了目前为止的最高值,因此所有进一步调用都将得到 57960,直至我们处理的操作比处理 $a 使用的内存更多(参见图 2)。

图 2. memory_get_peak_usage() 的示例输出

0
相关文章