[php] zwalnianie pamieci

0

czy moge jakos zwalniac pamiec w moich testach żebym nie był ograniczany przez ten bład:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in

?
widac go na stronie:

kod php jest tu

<?php

include('funkcje.inc');

// generowanie par losowych liczb o wspolnych przedzialach (po to aby wykazac fibonacciego)

$max = mt_getrandmax()+1;

$operation = array();

// liczniki do zliaczania zlozonosci
$m = 0;
$n = 0;

for ($i=1; $i<=29; $i+=6)
{
    for ($k=1; $k<=29; $k+=6)
    {
        $od_1 = pow(2,$i);
        $do_1 = pow(2,$i+6);

        $od_2 = pow(2,$k);
        $do_2 = pow(2,$k+6);

        // liczby losowe:
        $temp1 = abs(mt_rand($od_1,$do_1) + mt_rand($od_1,$do_1));
        $temp2 = abs(mt_rand($od_2,$do_2) + mt_rand($od_2,$do_2));

        echo 'Dla liczb z zakresu:<br />'; 
        echo '- od ' . ($od_1 + $od_1) . ' (2^' . ($i+1) . ') do ' . ($do_1 + $do_1) . ' (2^' . ($i+7) . '), liczba losowa A = ' . $temp1 . '.<br />';
        echo '- od ' . ($od_2 + $od_2) . ' (2^' . ($k+1) . ') do ' . ($do_2 + $do_2) . ' (2^' . ($k+7) . '), liczba losowa B = ' . $temp2 . '.<br /><br />';

        // operacje na tych liczbach
        test($temp1,$temp2);

    }
}

?>

ale najważniejsze, czyli funkcja ze static tutaj:

0

Używaj unset do zwalaniania niepotrzebnych zmiennych. Ale jeśli potrzebujesz wszystko, pomoże tylko zmiana ustawień php (memory_limit)

0

dobra podopisywałem unset tam gdzie sie tylko da, ale i tak pewnie jak nadpisze te zmienne nowymi to na jedno wyjdzie..

<?php

include('funkcje.inc');

// generowanie par losowych liczb o wspolnych przedzialach (po to aby wykazac fibonacciego)

$max = mt_getrandmax()+1;

$operation = array();

// liczniki do zliaczania zlozonosci
$m = 0;
$n = 0;

for ($i=1; $i<=29; $i+=6)
{
    for ($k=1; $k<=29; $k+=6)
    {
        $od_1 = pow(2,$i);
        $do_1 = pow(2,$i+6);

        $od_2 = pow(2,$k);
        $do_2 = pow(2,$k+6);

        // liczby losowe:
        $temp1 = abs(mt_rand($od_1,$do_1) + mt_rand($od_1,$do_1));
        $temp2 = abs(mt_rand($od_2,$do_2) + mt_rand($od_2,$do_2));

        echo 'Dla liczb z zakresu:<br />'; 
        echo '- od ' . ($od_1 + $od_1) . ' (2^' . ($i+1) . ') do ' . ($do_1 + $do_1) . ' (2^' . ($i+7) . '), liczba losowa A = ' . $temp1 . '.<br />';
        echo '- od ' . ($od_2 + $od_2) . ' (2^' . ($k+1) . ') do ' . ($do_2 + $do_2) . ' (2^' . ($k+7) . '), liczba losowa B = ' . $temp2 . '.<br /><br />';

        // operacje na tych liczbach
        test($temp1,$temp2);
        unset($temp1); unset($temp2);

    }
}

?>

dalej jest ten bład:

da sie to jeszcze jakos zoptymalizowac?

//Nie mamy tu znaczników - to nie phpBB - M

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0