php真垃圾,PHP垃圾收集很糟糕还是仅仅是我?

我有一个下面的函数,我在循环中经常调用.

随着内存从1MB上升到156MB,我等了5分钟. PHP的garabage收集器不应该出现并在某些时候减少它吗?!

是因为我将内存限制设置为256MB?

在回波点2,3,4,它的内存使用量相当不变.它在第4点下降了半个兆位.但第1点是主内存增加发生的地方.可能是因为file_get_html在内存中加载了html文件.

我虽然变量$html的清晰和未设置会解决这个问题吗?

function get_stuff($link, $category ){

$html = file_get_html(trim("$link"));

$article = $html->find('div[class=searchresultsWidget]', 0);

echo '1 - > '.convert(memory_get_usage(true)).'
';

foreach($article->find('h4 a') as $link){

$next_url = 'http://new.mysite.com'.$link->href;

$font_name = trim($link->plaintext);

$html = file_get_html(trim("$next_url"));

$article = $html->find('form[class=addtags]', 0);

$font_tags = '';

foreach($article->find('ul[class=everyone_tags] li a span') as $link){

$font_tags .= trim($link->innertext).',';

}

echo '2 - > '.convert(memory_get_usage(true)).'
';

$font_name = mysql_real_escape_string($font_name);

$category = mysql_real_escape_string($category);

$font_tags = mysql_real_escape_string($font_tags);

$sql = "INSERT INTO tag_data (font_name, category, tags) VALUES ('$font_name', '$category', '$font_tags')";

unset($font_tags);

unset($font_name);

unset($category);

$html->clear();

mysql_query($sql);

unset($sql);

echo '3 - > '.convert(memory_get_usage(true)).'
';

}

unset($next_url);

unset($link);

$html->clear();

unset($html);

unset($article);

echo '4 - > '.convert(memory_get_usage(true)).'
';

}

正如你所看到的,我试图无力地利用未设置的东西.虽然我的理解并不好,但一旦我称它就不会“取消”记忆.

感谢大家帮助我如何减少记忆力的上升.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值