如何在运行时获得以*字节*为单位的最大允许RAM使用量



我有(例如(这个:

ini_set('memory_limit', '128M');

它因脚本和设置而异。我需要在运行时获得字节数,而不是字符串"128M"。

我不使用字符串128M,也不希望编写自己的解析器来将其(以及支持的所有其他符号(转换为字节。

如何获取当前脚本当前允许的原始最大字节数?

(我正在编写一种机制,当脚本接近其允许的最大RAM使用量时,它会通知我,然后再超过这个值,以便向自己发送有用的健康报告。一旦它已经达到极限,就会出现致命错误,并且无法正确记录。(

function conv2bytes($val) {
$val = strtolower(trim($val));
$unit = substr($val,-1, 1);
$val = substr($val, 0, -1);
if($unit=='g') $val *= 1024*1024*1024;
else if($unit=='m') $val *= 1024*1024;
else if($unit=='k') $val *= 1024;
else return false;
return $val;
}

并使用下面的代码来获得内存使用

echo memory_get_usage(false); // only the used memory is reported
echo memory_get_usage(true); // get total memory allocated from system, including unused pages

参考:https://www.php.net/manual/en/function.memory-get-usage.php

最新更新