PHP Çöp toplama berbat yoksa sadece ben miyim?

0 Cevap php

I bir döngüde çok sık now aşağıda işlevi vardır.

Hafıza 156MB için 1MB kadar tırmandı Ben 5 dakika bekledim. PHP'nin garabage toplayıcı açmak ve bir noktada bu azaltmak should't?!

Ben 256MB hafıza limitini ayarlamış diye mi?

Echo noktada 2,3,4 onun oldukça sabit bellek kullanımı at. Bu noktada 4 benim yarısında aşağı meg gider. Fakat ana bellek artış olur nerede nokta 1'dir. Muhtemelen çünkü file_get_html bellekte html dosyası yüklenirken.

Ama açık ve değişken unset $html Bu dikkat çekmek istiyorsunuz?

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 />';

}

Gördüğünüz gibi, ben zayıfça unset yararlanmak için çalıştı. Olmasına rağmen ben en kısa sürede ben onu aramak gibi "kurulmamış" bellek olmaz anlamak gibi iyi.

Tüm ben bu bellek yukarı artışını azaltmak konusunda herhangi bir yardım için teşekkür ederiz.

0 Cevap