我目前正在使用memory_get_usage
函数来确定我的PHP脚本使用了多少内存。但是,我想显示内存使用值与PHP可用的内存总量。
如何获取PHP可用的内存总量?
答案 0 :(得分:4)
答案 1 :(得分:1)
有一个问题是,使用ini_get
您只会获得php.ini
的字符串(例如500
或500M
或1G
等)
如果您需要以字节为单位的实际值,可以使用这个简单的开源工具: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兆字节。
那么,哪个是您的真正问题:
第一个问题的答案是3 MB,第二个问题的答案是4 MB。