草庐IT

php - Zend_Db_Table_Row 内存泄漏?

这是我的代码:createRow();$row->name='Test'.$i;$row->save();unset($row);echo(memory_get_usage()-$start)."\n";}这是我看到的:90664933849605698728101400这不是内存泄漏吗?当我在一个脚本中有500个对象要插入数据库时​​,我遇到了内存溢出。谁能帮忙? 最佳答案 如果您在插入500而不是5时遇到内存错误,那确实是泄漏(也可能是一些缓存)。如果内存使用率反而上升和下降,这是正常的:garbagecollector正在再次

php - PHP 内存泄漏的常见原因是什么?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:FindingcauseofmemoryleaksinlargePHPstacksPHP内存泄漏的常见原因有哪些?我正在寻找毫无戒心的PHP程序员通常会导致内存泄漏的事情。

command-line-interface - 在不使用 foreach 循环的情况下迭代关联数组并导致内存泄漏

我正在开发一个无限循环运行的命令行脚本。一段时间后,它会导致段错误,我认为这是由内存泄漏引起的。我想我是对的,因为在查看ps命令产生的结果后,脚本使用的内存似乎在脚本崩溃之前不断增加。我找到了thisarticle,它指出命令行php中内存泄漏的一个可能原因是使用foreach循环,它创建永远不会取消设置的数组副本。经过一些研究,情况似乎是这样。所以我决定用它们的for等效项替换所有foreach循环。第一个问题-我的推理是否正确?第二个-如果我有一个要迭代的关联数组并且我想知道当前键怎么办?我能想到的一种方法是使用array_walk(),另一种方法是结合使用next()和key()

php - 如何修复 Magento 中与 load() 方法相关的内存泄漏?

我正在将数据(产品、客户和订单)从一个Magento商店导入到另一个Magento商店。例如,当我尝试导入产品时,我需要加载产品以检查它是否已经存在并使用加载产品的一些属性。我正在使用方法Mage::getModel('catalog/product')->load($sku)并使用命令行运行脚本。类似于:$php-fshell/mymodule.php问题是当我在循环中使用load()方法时,Magento不会停止增加内存使用量。foreach($result['items']as$item){echo$index.'-Memory:'.memory_get_usage()."\n"

PHP 5.5.6 随机内存泄漏

在我们从PHP5.3.3迁移到PHP5.5.6和Apache2.4之后,在Kohana上运行的每个站点3.3时不时遇到Outofmemory异常。完整的错误信息PHPFatalerror:Allowedmemorysizeof268435456bytesexhausted(triedtoallocate140316914598360bytes)inUnknownonline0PHP表示它尝试分配127TB内存(末尾的字节数发生变化,但仍然在TB左右)。它完全随机发生。有时您会连续几个小时没有问题,然后突然连续出现1条甚至10条内存不足消息。它发生在所有项目中,无论是连接到MySQL、M

php - 如何避免 PHP 5.4 中的内存泄漏?

我刚刚发现在PHP中可能会泄漏内存。我在循环中运行一些代码,每次循环后内存使用量都会增加,直到脚本达到内存限制。我已经确定:没有全局变量(我相信也没有静态变量)我正在运行PHP5.4,据说它有一个用于循环引用的新垃圾收集器我所有的变量在每个循环后都超出范围我在每个循环后调用gc_collect_cycles()这是一个示例脚本,演示了与PhpExcellibrary有关的问题:require_once(__DIR__.'/libraries/PHPExcel/PHPExcel.php');ini_set('memory_limit','200M');@mkdir(__DIR__.'/o

php - 递归函数中的内存泄漏与引用

我得到了以下代码。这是一个获取元素和所有child的child的系统......该元素的child。好吧,我使用递归函数来做到这一点:prepare('SELECT*FROM`items`WHERE`parent_id`=?');$itemsStmt->execute(array($parent));return$itemsStmt->fetchAll(PDO::FETCH_ASSOC);}functionaddToArray($items,&$array){foreach($itemsas$item){$child=$item['child_id'];$indexer=$item['

php - 访问未定义数组索引导致的内存泄漏

我有一个脚本可以分析XML数据并用信息填充相同的数组。对于一些(巨大的)输入,脚本崩溃了。有一个foreach循环运行了大约180次没有问题(memory_get_usage()在迭代180中大约20MB,每个循环增加大约0.1MB)然后碰巧在每个新循环中,内存使用量都会翻倍。通过使用大量日志记录,我能够将问题追踪到foreach中的以下行。$fu=$f['单位']$f具有以下结构:array('name'=>'Test','value'=>'4','unit'=>'min-1',)但在某些(许多)情况下(也是在第180次迭代之前),键unit不存在于数组中。我能够通过将行替换为以下内

php - 在 PHP 中调试内存泄漏/使用错误的工具/技术

我有一个命令行脚本,它通过循环运行文件的array(),并使用文件名作为参数来调用辅助对象的方法。每次运行脚本,PHP的memory_get_usage报告一个越来越大的数字53294264570196246137462465699176702306007515715279900392846304728935926494300016100031176105202448110360808115777528121146976126784824132366952直到我出错PHPFatalerror:Allowedmemorysizeof134217728bytesexhausted很明显,某

php - Kohana内存泄漏?

我这里有潜在的内存泄漏。这可能是Kohana的。我希望得到你的见解。(调试这个脚本好几天了,昨晚终于放弃了)。这是这个脚本的作用:基本上,这是一个后台worker(托管在Pagodabox)。这就是为什么它是一个无限循环的原因。一步一步:它尝试获取一篇未处理的文章然后从相关表中获取相关信息它将信息保存到表中(emailerscheds)自然地,因为只从表中获取了一篇文章记录,所以它会返回顶部并获取另一篇文章。再次从1开始。问题:在第一条记录之后内存没有被清除,最终,分配的内存,无论多么大,都会用完。我不得不认为,由于您正在处理一个新的数据库对象,因此必须清除内存。但事实并非如此。我已经