gpt4 book ai didi

PHP 内存限制

转载 作者:可可西里 更新时间:2023-10-31 22:59:33 24 4
gpt4 key购买 nike

我有一个小问题,当我们为 PHP 设置 memory_limit 时,我了解到它将使用该整数作为允许脚本使用的最大内存。

这是否意味着如果我将最大值设置为 64MB,而我的脚本只需要 12MB,那么它会利用全部 64MB,因为这是允许的?

我问是因为我注意到我的一些脚本虽然使用了 12MB(使用 get_memory_usage 发现)但是 httpd 进程本身接近 64MB 标记,即使这是唯一运行的脚本!顺便说一句,我没有内存泄漏问题。

它产生的其他进程(即 CMD)是否也会被添加到 httpd 进程的整体内存使用情况中?

感谢大家帮助我解决这个问题。

最佳答案

PHP 的 memory_limit 只考虑由 Zend 引擎的内存管理器处理的内存(参见 Zend/zend_alloc.c ),并且该管理器不会“抢先”分配通过 memory_limit 设置的数量(尽管它会分段分配新内存) .并非 PHP“内部”的所有内容都由内存管理器处理,但大部分都是。由您的 php 实例生成的其他进程不会“继承”内存管理器。因此,它们的内存消耗不计入 memory_limit。

您在任务管理器中看到的(很可能)是 working set httpd进程。如果它作为 apache 模块安装,则 包括 由 php 分配的内存(由内存管理器处理或不处理)。但还有当前在物理内存中的 httpd 的任何其他内容。但它不包括派生进程分配的内存量。

关于PHP 内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com