Czy w PHP istnieją jakieś mechanizmy zwalniania pamięci?
Mam skrypt, który wykonuje dość długą pętlę. Z każdym kolejnym przebiegiem pętli rośnie zużycie pamieci przez php.
Mam wrażenie, że jakieś zmienne zajmują kolejne obszary pamięci.
<? for($no=0;$no<100000;$no++) { $cos_read = ''; # Sprawdzenie, czy cos już jest obecny w BD. // Połączenie z bd require_once('db.inc.php'); { continue; $wiersz['params']=$no_cos.','.$wiersz['model'].','.$wiersz['params']; $dane_cos[1] = $wiersz['date']; $dane_cos[2] = $wiersz['mode']; } else { // example of how to modify HTML contents include_once('simplehtml/simple_html_dom.php'); // get DOM from URL or file $html=''; { $html = @file_get_html('http://xxx/?cos='.$no_cos); } // Tworzenie tabeli foreach($html->find('strong') as $e) $cos_read[] = $e->plaintext; $j=0; foreach($html->find('td') as $td) { if ($j == 8 || $j == 16) $dane_cos[$j / 8] = $td->plaintext;; $j++; if ($j > 16)break; } } { } else { // tworzymy zapytanie do BD $zapytanie = "SELECT code, description FROM cos_eq WHERE code='".$cos_read[2]."'"; $code = ''; $code2 = $cos_read[2]; for($i=3;$i<$cos_el_numb;$i++) { $code = $code. " OR code='". $cos_read[$i]."'"; $code2 = $code2.','.$cos_read[$i]; } $zapytanie = $zapytanie.$code; { { $cos_temp[$wiersz['code']] = 1; } } ## Uzupełnianie wyposażenia w BD { if($cos_temp_numb < ($cos_el_numb - 2)) { $insert = "INSERT INTO cos_eq (code) VALUES "; $code = ''; for($i=2;$i<$cos_el_numb;$i++) { { $coma_exist = true; $code = $code. "('".$cos_read[$i]."')"; } } $insert=$insert.$code; } } ## Zapisanie sprawdzanego cos do bazy lub podbicie licznika. require_once('cos_bd.inc.php'); $insert_2 = sprintf("INSERT INTO cos_decode (cos, params, model, mode, date) VALUES ('%s','%s',%d, %d, '%s')", $no_cos, $code2, $model, $silnik, $date); { $zapytanie = 'UPDATE cos_decode SET checked=checked WHERE cos="'.$no_cos.'"'; } else } } ?>