PHP内存限制

Abs*_*Abs 4 php memory

我有一个小问题,当我们为PHP设置memory_limit时,我明白它将使用该整数作为脚本使用的最大内存.

这是否意味着如果我将最大值设置为64MB并且我的脚本只需要12MB,它将使用完整的64MB,因为它允许?

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

是否还会产生其他进程,即CMD将被添加到httpd进程的整体内存使用情况?

感谢所有人为我解决这个问题提供的任何帮助.

Vol*_*erK 5

PHP的memory_limit的只需要存储到由Zend引擎的内存管理器处理的帐户(请参阅的Zend/zend_alloc.c)和该经理不分配通过memory_limit的"先发制人"(尽管它分配新的内存段)设置的量.并非所有"内部"PHP都由内存管理器处理,但大多数是.您的php实例生成的其他进程不会"继承"内存管理器.因此,它们的内存消耗不计入memory_limit.

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