当我运行我的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。