停止PHP使用如此多的内存循环和mySQL查询?

时间:2011-06-06 09:33:10

标签: php mysql firefox

我注意到在php / mysql中反复处理大量数据时,浏览器的内存使用量会很快增加。

例如运行firefox 4,仅使用app im测试打开单个选项卡目前正在使用超过800MB的ram。

测试涉及通过PHP重复加载来自mySQL的500KB以及每次刷新页面或ajax调用的循环,我假设这会导致内存堆积?

有没有办法可以减少这个?

2 个答案:

答案 0 :(得分:1)

解析较少的数据(并发送较少的HTML),这是使用更少内存的唯一解决方案

无论如何要检查内存的使用情况,您可以使用memory_get_usage();

回复您的问题标题,停止循环播放

while($r=mysql_fetch_*($query)) {
    if (memory_get_usage()>YOUR_LIMIT_BYTE_HERE)  {
        echo 'red alarm here';
        break;
    }

}

答案 1 :(得分:1)

如果您通过ajax从MySQL返回很多的记录,那么这很可能会导致浏览器中的内存消耗量上升。

根据您的浏览器及其Javascript的实现,您可能还有内存泄漏 - 这意味着即使在页面刷新之后,上一页分配的一些内存仍在使用中。只有关闭浏览器才有可能解决这个问题。