当我运行我的PHP脚本时,我得到了错误....
Fatal error: Out of memory (allocated 1827405824) (tried to allocate 88800 bytes)我已经在PHP脚本中添加了这一行。
ini_set("memory_limit","3000M");这条语句似乎确实正确地控制了内存的使用,但我似乎不能让它超过1.8 get。这就好像内存上限被限制在其他地方一样。我还添加了php.ini...
memory_limit = 3000M有没有人知道内存是否被限制在其他地方?
我正在使用Xampp运行本地服务器。我使用的是Windows 7,64位,内存为4 4GB。我的脚本使用PHP图像库,在尝试使用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.7 by
发布于 2014-07-24 19:56:05
使用Acquia Dev Desktop时,我遇到了很多内存限制崩溃的问题。
在将内存限制增加到PHP.ini之后。
php_value memory_limit 1024M
php_value max_execution_time 3000此问题不太常见,但仍在发生(特别是在重新创建功能时)
在我的httpd.conf中,我将StackThread增加到16M
ThreadStackSize 16*1024*1024它解决了内存崩溃的问题。希望能有所帮助
发布于 2013-04-20 18:17:34
您运行的是64位操作系统,但是Apache和PHP可能仍然是32位的。如果你使用的是mod_php,apache将是这里的限制因素。
32位进程的内存限制为2GiB,除非您使用的是/3GB开关,并且软件支持3 3GB。
仍然有大约200个MiB看起来没有使用,但它足够小,可以被各种库使用,这些库都必须加载到内存中
据我所知,库的使用不会显示在提交的内存中,但仍然计入2GiB的限制(就像32位windows上的设备内存计入4GiB的限制一样)。其中安装2 GiB显卡会使您的可用内存降至2 GiB以下)。
最有可能的解决方案?安装一个64位PHP,然后将其分派给它(可能使用system()调用)
发布于 2010-12-09 22:17:40
您使用的是哪个PHP版本?
memory_limit变量包含在32位整数中,因此不能超过2 go。
请参阅:http://bugs.php.net/bug.php?id=39132&edit=1
从bug报告的底部注释来看,它可能是将人类可读的形式转换为数字的例程,尝试将其放在数字中。
https://stackoverflow.com/questions/4399138
复制相似问题