You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP运行时如何获取当前脚本允许的最大内存占用字节数

PHP获取内存上限原始字节数方案

高版本PHP(8.2及以上)方案

直接使用PHP内置的ini_get_int()函数,无需自行处理单位解析,会直接返回转换后的整数字节数:

// 直接返回内存上限对应的字节数,比如设置128M时返回134217728
$maxMemoryBytes = ini_get_int('memory_limit');

如果返回值为-1,代表当前脚本没有设置内存上限。

低版本PHP(8.2以下)兼容方案

不需要自己从零编写单位解析器,利用PHP内置的字符串处理能力即可完成转换,覆盖K/M/G所有官方支持的单位场景:

$memoryLimitStr = ini_get('memory_limit');
if ($memoryLimitStr === '-1') {
    $maxMemoryBytes = -1; // 无内存限制
} else {
    $unit = strtoupper(substr($memoryLimitStr, -1));
    $value = (int)substr($memoryLimitStr, 0, -1);
    $maxMemoryBytes = match ($unit) {
        'K' => $value * 1024,
        'M' => $value * 1024 * 1024,
        'G' => $value * 1024 * 1024 * 1024,
        default => (int)$memoryLimitStr
    };
}

适配监控场景用法

搭配memory_get_usage(true)获取当前脚本实际占用的系统内存字节数,和上面拿到的上限值对比即可实现阈值告警,示例逻辑如下:

// 内存使用率到达90%时触发告警
$warnThreshold = 0.9;
$currentUsage = memory_get_usage(true);
if ($maxMemoryBytes !== -1 && $currentUsage / $maxMemoryBytes >= $warnThreshold) {
    // 执行你的告警通知逻辑
}

内容的提问来源于stack exchange,提问作者user17535142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:15:11