如何获取PHP的内存

时间:2013-12-29 22:26:35

标签: php memory-management

我目前正在使用memory_get_usage函数来确定我的PHP脚本使用了多少内存。但是,我想显示内存使用值与PHP可用的内存总量。

如何获取PHP可用的内存总量?

3 个答案:

答案 0 :(得分:4)

您可以使用php.ini设置memory_limit

ini_get('memory_limit');

从技术上讲,这是 PHP可用的总金额,它是PHP脚本可用的金额。

答案 1 :(得分:1)

有一个问题是,使用ini_get您只会获得php.ini的字符串(例如500500M1G等)

如果您需要以字节为单位的实际值,可以使用这个简单的开源工具:https://github.com/BrandEmbassy/php-memory

然后您可以执行此操作:$limitProvider->getLimitInBytes();并且库会自动为您转换所有有效值。

答案 2 :(得分:-1)

也许这个问题并不完全准确。因为分配和释放不同的内存区域可能导致类似拼凑的内存分配,所以问题可能不是您要问的。

例如,您以6兆字节的可用RAM开头,每兆字节的可用RAM都用F表示:

FFFFFF

并分配3倍的1MB,第一个分配给$a,第二个分配给$b,第三个分配给$c,然后您会得到以下映射:

abcFFF

此后,您可以释放分配给$b的第二个兆字节,例如,您从$b是局部变量的函数返回。现在地图看起来像这样:

aFcFFF

现在您有四个4兆字节的可用内存,您可以分配1兆字节的4倍,但只能在一个块中分配3兆字节。

那么,哪个是您的真正问题:

  1. 我可以分配的最大连续区域是多少?
  2. 我可以分配的可用空间总和是多少?

第一个问题的答案是3 MB,第二个问题的答案是4 MB。