PHP/Apache 的内存上限
我在运行PHP脚本时遇到错误....
Fatal error: Out of memory (allocated 1827405824) (tried to allocate 88800 bytes)
我已将此行添加到我的 PHP 脚本中。
ini_set("memory_limit","3000M");
这句话似乎确实正确地控制了内存使用量,但我似乎无法将其提高到大约1.8GB以上。就好像内存上限在其他地方受到限制一样。我还添加到了 php.ini...
memory_limit = 3000M
有谁知道内存是否在其他地方受到限制?
我正在运行一个带有Xampp的本地服务器。我有Windows 7,64位,4GB RAM。我的脚本使用PHP的GD图像库,当我尝试使用ImageCreateTrueColor()分配图像引用时,我收到错误。
(我知道这是一个巨大的内存 - 但这只是一个脚本,这样做要容易得多。
谢谢。
更新。。。。
@elusive @Orbling我希望每个人都对这个问题感到无聊,但这里有一个简化的代码来说明这个问题。
<?php
ini_set("memory_limit","4000000000");
echo "ini_get = " . ini_get('memory_limit') . "<br>\n";
echo "memory_get_usage = " . memory_get_usage(true) . "<br>\n";
$bigImageHandle = imagecreatetruecolor(22200, 24800); //this is line 5
?>
浏览器输出...
ini_get = 4000000000
memory_get_usage = 524288
Fatal error: Out of memory (allocated 1843396608) (tried to allocate 88800 bytes) in
E:\User\My_Webs\experiments\houseshunting\temp\osMaps\t1.php on line 5
我用一组较小的磁贴和imagecreatetruecolor()使用的内存对此进行了测试,我估计我需要2.7GB