标签: memory-limit

增加PHP内存限制(Apache,Drupal6)

我正在尝试在共享托管服务器上运行Drupal安装.(我只是订阅了一个提供商 - 我没有这个盒子.)

我需要增加Apache服务器的PHP内存限制.我试过了

ini_set('memory_limit', '64M');
Run Code Online (Sandbox Code Playgroud)

在settings.php(每个请求中包含的文件)中,但这会导致内部服务器错误500.如果我将其取出,我会收到此错误:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 19456 bytes)...
Run Code Online (Sandbox Code Playgroud)

附带问题:19456小于33554432.为什么说允许的大小已经用尽?

我也试过把它放在.htaccess上:

 php_value memory_limit                 128M 
Run Code Online (Sandbox Code Playgroud)

这没有效果.

php apache drupal drupal-6 memory-limit

4
推荐指数
1
解决办法
8887
查看次数

在不超出内存限制的情况下调整php中​​的多个图像

我目前正在尝试获取一个表单,允许使用PHP在服务器上上传和调整大小的图像.客户端上传的每张图片大小约为2.5mb.

我目前正在使用该move_uploaded_file()功能.

将文件移动到服务器上没有问题.当我尝试裁剪时出现问题.在我的主机上没有ImageMagick我正在使用这个设置(不是所有的代码只是相关的,这是在循环中$width等等改变不同的裁剪尺寸)

$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, $output_filename, 80);
Run Code Online (Sandbox Code Playgroud)

目前,这只适用于2张图片.如果提交了3个或更多,我会收到"内存耗尽"错误.我研究了这个,因为我的内存限制是120mb.显然,该imagecreatefromjpeg函数使用了大量内存,特别是如果文件具有较大的分辨率(我的确如此 - 因此我需要裁剪/调整大小).

有谁知道更有效的方法来完成这项任务?我在google上进行了研究,但每个人都使用相同的技术.

php image-resizing memory-limit

4
推荐指数
1
解决办法
1288
查看次数

PHP memory_get_usage大于memory_limit

我的PHP应用程序运行速度有点慢,目前内存效率不高.我的整个服务器经常停机,我想我应该责备这个应用程序.我以为我会监视内存使用情况并检查我有多少作为限制:

echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024 .'M) <br>';
echo 'Peak usage: ' . memory_get_peak_usage() . ' ('. memory_get_peak_usage()/1024 .'M) <br>';
echo 'Memory limit: ' . ini_get('memory_limit') . '<br>';
Run Code Online (Sandbox Code Playgroud)

这显示以下内容:

Memory in use: 629632 (614.921875M) 
Peak usage: 635696 (620.796875M) 
Memory limit: 128M
Run Code Online (Sandbox Code Playgroud)

怎么会这样?使用的内存是否大于内存限制?要么是真的坏了,要么根本不理解memory_limit设置的工作原理(或memory_get_usage())

谢谢你们.

php memory-management memory-limit

4
推荐指数
1
解决办法
9245
查看次数

PHP memory_limit是否为PHP预分配内存

我们网站上的一些页面达到了PHP内存限制,目前设置为128MB.当请求将内存限制提高到256MB时,我们的托管公司的工程师告诉我们:

在我们的服务器上"平均请求需要少于64MB的RAM"

"将内存限制转移到256MB实际上会创建192M内存的平均分配,而不会在大多数请求中使用"

这是正确的,memory_limit数量实际上是预先分配的,并且对于我们的大多数请求都会浪费192MB吗?

谢谢!

php ubuntu nginx memory-limit

4
推荐指数
1
解决办法
464
查看次数

R减少内存限制

我知道可以很容易地使用命令memory.limit(size = N)增加R的内存限制。如果我尝试将其减小到小于N的值,则出于显而易见的原因,我会收到错误消息:

Warning message:
In memory.limit(size = 10) : cannot decrease memory limit: ignored
Run Code Online (Sandbox Code Playgroud)

有没有办法减少内存限制的前期运行代码(或作为第一个命令)?我出于培训目的(例如如何处理内存问题?)来实现此目的。

r memory-limit

4
推荐指数
1
解决办法
2772
查看次数

无限大小的整数?

在Python中,我可以编写一个程序来计算无限大小的整数.就在前几天,我做了第一百万个斐波纳契数,而且它太大了它无法放入控制台.如果可以在Python中做到这一点,我的理解是用C语言编写的,那么在C++中如何做同样的事情呢?它必须是可能的,否则我不知道如何在Python中完成它.我也相信在Java/C#中有类似的东西称为Biginteger,但我找不到任何说它如何在C++中实现的东西.

c++ integer biginteger memory-limit

3
推荐指数
2
解决办法
4835
查看次数

file_put_contents和file_get_contents耗尽内存大小

我有一些简单的尝试从一个文件写到另一个文件.

$content=file_get_contents("C:\Users\Borut\Desktop\sql_PW1\mm_ads (1).sql");
file_put_contents("C:\Users\Borut\Desktop\sql_PW1\New", $content);
Run Code Online (Sandbox Code Playgroud)

我读的文件大约是80M大,php中的内存限制是128M,但是我收到一个错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 80739522 bytes)
Run Code Online (Sandbox Code Playgroud)

所以即使我试图分配的内存实际上更小,内存也已耗尽?我可以通过增加内存限制来完成这项工作,但我想知道为什么它不能使用此限制.

php file-get-contents memory-limit

3
推荐指数
1
解决办法
9626
查看次数

从cli运行PHP脚本:php.ini memory_size没有考虑到

我试图从命令行运行PHP脚本(magento reindexer脚本).该脚本消耗大量内存,因此我收到以下错误:PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 72 bytes) in /home/karanta/www/karanta.fr/lib/Zend/Db/Adapter/Abstract.php on line 691

要解决此问题,我编辑了/etc/php5/cli/php.ini文件并进行了设置memory_limit = 2048M.

要检查配置,我运行一个包含phpinfo();cli 的脚本,我看到:memory_limit => 2048M => 2048M,所以似乎正确考虑了配置.ini_get('memory_limit);也返回2048M.

但是当我重新运行reindex脚本时,我仍然PHP Fatal error: Allowed memory size of 536870912 bytes exhausted感觉到memory_limit仍然是512M.该脚本无法完成,我没有想法如何扩充memory_limit以允许脚本完成.

编辑:我也尝试将指令ini_set("memory_limit", -1);直接添加到PHP脚本中,它仍然挂起相同PHP Fatal error: Allowed memory size of 536870912 bytes exhausted.

额外的信息:

服务器是运行Debian GNU/Linux 7.5和64GB RAM的ovh专用机器!

php -v 收益:

PHP 5.6.12-1(cli)版权所有(c)1997-2015 PHP Group …

php command-line-interface magento memory-limit reindex

3
推荐指数
1
解决办法
1959
查看次数

如何在没有内存限制的情况下读取php中的大文件

我正在尝试逐行读取文件。问题是文件太大(超过 500000 行),我达到了内存限制。我想知道如何在没有内存限制的情况下读取文件。

我正在考虑多线程解决方案(例如将文件分成较小的组(每组 100000 行)并在多线程中读取它),但我不知道如何详细执行。请帮助我(对不起,英语不好)。

这是我的代码

$fn = fopen("myfile.txt", "r");

while(!feof($fn)) {
    $result = fgets($fn);
    echo $result;
}

fclose($fn);
Run Code Online (Sandbox Code Playgroud)

php file memory-limit

3
推荐指数
1
解决办法
2418
查看次数

Symfony2 Doctrine2 超出内存限制,允许的内存大小 1073741824 字节耗尽

我有一个帖子的关系数据库。

帖子表 <-- OneToMany

帖子猫表 <-- ManyToOne

类别表 <-- OneToMany

如果我使用 Doctrine @ORM 来连接表,在使用注释的实体中。我出现白屏,并在错误日志中显示错误:

emergency.EMERGENCY: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 1052508160 bytes) {"type":1,"file":"/[PATH TO SYMFONY]/vendor/twig/twig/lib/Twig/Extension/Debug.php","line":66}
Run Code Online (Sandbox Code Playgroud)

我已经多次提高内存限制,从 64M 到 1024M。

还有其他人发现这个问题吗?我认为执行> Gig 内存的文件是不好的。

如果我使用查询生成器编写查询,我会得到我期望的结果。我认为如果我能让 Doctrine 关系映射发挥作用,那就更好了。有人对此有意见吗?

我希望就此事得到一些建议。

提前致谢。

------------ 编辑回复评论-------------------------------- ------

感谢您的评论@Cerad。数据库中只有大约 10 行。我也在app_dev.php 中。以下是我的文件的一些摘录。

帖子表

class Post
{
    //... ^ table collumns

    /**
     * @ORM\OneToMany(targetEntity="PostCats", mappedBy="Post")
     */
    protected $PostCats;

    public function __construct()
    {
        $this->PostCats = new ArrayCollection();
    }

}
Run Code Online (Sandbox Code Playgroud)

后猫加入表。

class PostCats
{
    //... …
Run Code Online (Sandbox Code Playgroud)

memory-limit symfony doctrine-orm

2
推荐指数
1
解决办法
4705
查看次数