标签: memory-limit

PHP/Apache的内存上限

我在运行PHP脚本时收到错误....

Fatal error: Out of memory (allocated 1827405824) (tried to allocate 88800 bytes)
Run Code Online (Sandbox Code Playgroud)

我已将此行添加到我的PHP脚本中..

ini_set("memory_limit","3000M");
Run Code Online (Sandbox Code Playgroud)

这句话似乎确实正确地控制了内存使用量,但我似乎无法将其高于1.8GB.好像上限内存被限制在其他地方.我也加入了php.ini ...

memory_limit = 3000M
Run Code Online (Sandbox Code Playgroud)

有谁知道内存是否在其他地方受到限制?

我正在使用Xampp运行本地服务器.我有Windows 7,64位,4GB内存.我的脚本使用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
?>
Run Code Online (Sandbox Code Playgroud)

浏览器输出......

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 …
Run Code Online (Sandbox Code Playgroud)

php apache memory-limit

19
推荐指数
3
解决办法
6万
查看次数

Symfony2中$ em-> clear()时未定义的索引错误

我编写了一个Symfony命令来从API导入一些数据.它的工作原理但问题是当我在数据库中插入一个大的JSON时,我的PHP内存使用量会增加.并且我的unitOfWork在每次激活导入后增加"2".

我已经取消了所有用过的对象,当你想做大量的批处理时,我已经阅读了Symfony2的文档:http://www.doctrine-project.org/blog/doctrine2-batch-processing.html

但是当我使用$em->clear()我的实体管理器时会出现此错误:

注意:未定义的索引:000000007b56ea7100000000e366c259在path-to-application\vendor\doctrine\lib\Doctrine\ORM\UnitOfWork.php第2228行中

这是我的完整代码:

 /**
 * @see Command
 */
protected function configure() {
  $this
    ->setName('ks:user:runkeepersync')
    ->setDescription('Synchroniser les activités d\'un utilisateur runkeeper')
    ->setDefinition(array(
      new InputArgument('access_token', InputArgument::REQUIRED, 'Access token'),
    ))
}

/**
 * @see Command
 */
protected function execute(InputInterface $input, OutputInterface $output) {
  $accessToken = $input->getArgument('access_token');
  $em = $this->getContainer()->get('doctrine')->getEntityManager();
  $UserHasServices = $em->getRepository('KsUserBundle:UserHasServices')->findOneByToken($accessToken);
  if (!is_object($UserHasServices) ) {
    echo "Impossible de trouver l'utilisateur qui possède le jeton ".$accessToken."";
  }
  $user    = $UserHasServices->getUser();
  $service = $UserHasServices->getService();
  echo "avant de …
Run Code Online (Sandbox Code Playgroud)

php unit-of-work memory-limit undefined-index symfony

19
推荐指数
2
解决办法
5091
查看次数

phpunit memory_limit参数不适用

我刚刚在mac osx 10.7中通过pear安装了phpunit,除了内存限制错误(xdebug启用了报告)之外,一切正常.

我试图将-d memory_limit=512M参数添加到phpunit,但它不适用,因为,在第一个错误,我添加var_dump(ini_get('memory_limit')); exit;并打印字符串(3)"32M"

那么,为什么它没有被应用呢?

除此之外,如果我跑

php -d memory_limit=256M -r "echo ini_get('memory_limit');"
Run Code Online (Sandbox Code Playgroud)

它呼应"256M"

是不是phpunit可能没有执行相同的PHP?

php macos phpunit xdebug memory-limit

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

32位Windows上C++应用程序可用的最大内存是多少?

只是想知道C++应用程序使用的最大内存是否有限制

我知道这是2GB - 这是正确的吗?

如果一个C++应用程序尝试请求超过2GB内存,这会导致内存崩溃吗?

最后的问题 - 如果运行C++应用程序的机器已经内存不足而且C++应用程序要求100MB的阵列(即连续的内存),操作系统是否会通过虚拟内存来适应这种情况?

c++ windows 32-bit memory-limit

13
推荐指数
2
解决办法
2万
查看次数

允许的内存大小为268435456字节

可能重复:
允许的X字节内存大小耗尽

我正在处理一个相当小的大数据库(87mb)导入,为此我使用PHP脚本.所有操作都是在本地安装,在Ubuntu Lucid上安装了apache.

几分钟后运行脚本时,我收到此错误:

Allowed memory size of 268435456 bytes exhausted 
Run Code Online (Sandbox Code Playgroud)

我已经memory_limit在php.ini文件中更改为2GB并重新启动了apache.之后我检查了一下phpinfo(),我发现它memory_limit被设置为'2048M'所以一切都好.

但是,当我重新启动我的脚本时,我收到相同的错误,256mb内存限制exkusted.

我哪里错了?

php ubuntu memory-limit

12
推荐指数
2
解决办法
7万
查看次数

php mpdf内存限制错误

我第一次使用mpdf库,一切正常.我写了一个脚本来创建pdf文件,其中包含一个274行的表.当我运行脚本时,我得到php内存错误.我尝试了不同的场景,但我得到了相同的内存错误.请帮我解决这个错误.我在下面列出了不同的场景及其结果.

php.ini = memory_limit = 256M

script = ini_set('memory_limit','25M');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Allowed memory size of 26214400 bytes exhausted
(tried to allocate 261904 bytes)
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14268
Run Code Online (Sandbox Code Playgroud)

php.ini = memory_limit = 256M

script = ini_set('memory_limit',' - 1');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Out of memory (allocated 1898971136)
(tried to allocate 261904 bytes) 
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14265
Run Code Online (Sandbox Code Playgroud)

php pdf pdf-generation memory-limit mpdf

12
推荐指数
1
解决办法
1万
查看次数

PHP上传大小及其对帖子大小和内存限制的影响

我的PHP Web应用程序需要将文件(大小约为2.5到3 GB)上载到服务器.这将如何影响以下指令?

在我的情况下,所需的值是多少?

  • post_max_size
  • upload_max_filesize
  • memory_limit

非常感谢您的帮助.

php file-upload memory-limit

10
推荐指数
1
解决办法
6565
查看次数

如何在Dreamhost上设置memory_limit php 5.3

我目前正在使用dreamhost来托管我的网站.但是,我正在使用的应用程序需要更高的内存限制,然后默认为90M.我对此比较陌生,我尝试了以下尝试修改php.ini文件,但没有任何运气.

我已经浏览了如何为php 5.3创建自定义php.ini文件的wiki,但是我在设置memory_limit时遇到了问题.

我按照以下链接中的说明操作:http://wiki.dreamhost.com/PHP.ini


登录https://panel.dreamhost.com/index.cgi?tr...in.manage&上的面板,并将您的域名更改为使用php5.3(可能是快速cgi)

在用户名下创建一个名为.php的目录,其子目录名为5.3.此目录下的文件将由该用户下设置为使用PHP 5.3的所有域使用.

终端示例

mkdir ~/.php
mkdir ~/.php/5.3
Run Code Online (Sandbox Code Playgroud)

存在此目录后,您可以在其中创建两个文件:

要向PHP添加自定义指令,请在.php/5.3 /下创建一个名为"phprc"的文件,并为其添加配置指令.您不需要将默认的php.ini复制到此文件,因为除了系统php.ini之外还使用它.如果两个文件中都出现指令,则该文件中的指令优先.

nano phprc
Run Code Online (Sandbox Code Playgroud)

在我的phprc文件中,我添加了以下行:


zend_extension=/home/mikdur2/peachjar.com/ioncube/ioncube_loader_lin_5.3.so
ini_set('memory_limit', '128M');
Run Code Online (Sandbox Code Playgroud)

zend_extension在phpinfo()中被拾取并验证,但是,memory_limit不会更改为128M.还有其他方法可以改变内存限制吗?或者是在phprc文件中更改它而不是正确的方法.还有另一篇帖子说明除了memory_limit的init_set之外的所有命令都有效.

顺便说一句:这是phpinfo() - http://peachjar.com/phpinfo.php

php dreamhost memory-limit

9
推荐指数
1
解决办法
8283
查看次数

memory_limit:它是如何工作的?

我有一个运行大约2个小时的PHP脚本.这是一个cron工作.cron作业每4小时运行一次.

在脚本的末尾,我显示一些内存值.

The memory_get_usage() result is 881568 Bytes (0.840766906738M)
The memory_get_peak_usage() result is 1340304 Bytes (1.27821350098M)
The memory_get_usage(true) result is 1572864 Bytes (1.5M)
The memory_get_peak_usage(true) result is 1835008 Bytes (1.75M)
Run Code Online (Sandbox Code Playgroud)

php.ini中的memory_limit是128M并且它不起作用.我把它提升到256M,现在它可以工作了.

但由于脚本的内存峰值小于2M ....

那么memory_limit参数如何工作?

它是脚本使用的总内存吗?如果是这样,我该如何计算呢?

它是脚本的内存峰值吗?如果是的话,我算得对吗?

我正在使用php 5.3.16.

编辑

我没有任何错误消息.当限制为128M时脚本执行,但永远不会完成.

php memory memory-limit

9
推荐指数
1
解决办法
1161
查看次数

Airflow:如何指定资源池的定量使用?

我正在寻找几个开源工作流程调度程序,用于具有异构RAM使用的DAG作业.调度程序不仅应该调度少于最大线程数,还应该将所有并发任务的RAM总量保持在可用内存之下.

在这个Luigi Q&A中,有人解释说

您可以设置配置中可用资源的数量,然后设置任务消耗的资源数量作为任务的属性.这将限制您一次运行n该任务.

在配置中:

[resources]
api=1
Run Code Online (Sandbox Code Playgroud)

在任务代码中:

resources = {"api": 1}
Run Code Online (Sandbox Code Playgroud)

对于Airflow,我无法在其文档中找到相同的功能.最好的方法是在资源池中指定多个可用插槽,并指定任务实例使用资源池中的单个插槽.但是,似乎无法指定任务实例在池中使用多个插槽.

问题:专门针对Airflow,如何指定任务实例的定量资源使用?

resources pool memory-limit luigi airflow

9
推荐指数
1
解决办法
1284
查看次数