I have a function below which I call very often in a loop.
I waited 5 minutes when the memory rose from 1MB to 156MB. Should the PHP garage builder appear and shrink at some point ?!
Is it because I set the memory limit to 256 MB?
At 2,3,4 echo point, this is a fairly constant use of memory. It falls on my half mega at point 4. But point 1 is where the increase in main memory occurs. Probably due to file_get_html loading the html file into memory.
If I understood and did not understand the $html variable, will this take care of this?
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)).'<br />'; 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)).'<br />'; $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)).'<br />'; } unset($next_url); unset($link); $html->clear(); unset($html); unset($article); echo '4 - > '.convert(memory_get_usage(true)).'<br />'; }
As you can see, I tried to use unset weakly. Although this is not good, because I understand that he will not "cancel" the memory as soon as I call it.
Thanks to everyone for any help on how I can reduce this upward memory growth.
garbage-collection php memory
Abs
source share