我注意到在php / mysql中反复处理大量数据时,浏览器的内存使用量会很快增加。
例如运行firefox 4,仅使用app im测试打开单个选项卡目前正在使用超过800MB的ram。
测试涉及通过PHP重复加载来自mySQL的500KB以及每次刷新页面或ajax调用的循环,我假设这会导致内存堆积?
有没有办法可以减少这个?
答案 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的实现,您可能还有内存泄漏 - 这意味着即使在页面刷新之后,上一页分配的一些内存仍在使用中。只有关闭浏览器才有可能解决这个问题。