Как сократить утечки памяти на пхп?

Тема в разделе "PHP", создана пользователем satih, 24 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    Для пхп скриптов (плюс мускул) которые работают круглосуточно без остановки, какие есть методы/функции для избежания утечек памяти?
     
  2. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    http://habrahabr.ru/blogs/webdev/11553/
     
    merdoc нравится это.
  3. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    один про фому, другой про ерему.

    По теме: ничего не поможет, даже ансеты, у пхп свой сборщик мусора, чтобы ты ни делал, в конце он все уберет за тебя. Если есть лик - то слать багрепорты и ждать пока пофиксят.
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Окуеть, дайте два:D у пхп да, есть всей сборщик, но работает он хреново. Иногда даже очень. И принудительно хрен выгрузишь память, которая какбы уже не используется.
     
  5. Jeckerson

    Jeckerson Постоялец

    Регистр.:
    26 июл 2009
    Сообщения:
    56
    Симпатии:
    6
    Я бывало писал парсеры где они по пару суток парсили + ещё пару дней обработка инфы. Т.е. даже если DOM использую то и 120мб стандартных в 95% хватает, а вообще для sql много памяти ненужно для запросов. ПХП чистит да кривовато, но если кропотливо к этом отнестись и в конце цикла сделать например вот так:
    PHP:
    foreach($name as $k => $v)
    {
    //делаем нужные операции
    echo get_memory_usage()."<br />";
    }
    и посмотреть как растёт память, то можно заметить что результаты близки к друг другу, т.е. оно чистит, но оставляется ещё какой-то мелкий кэш для пока хз чего =)

    Панацея для меня:
    - почти не юзаю переменные, всмысле сразу вбиваю в поле типо такое mysql_real_escape_string(date("Y-m-d",strtotime("now"))) - плохой пример но думаю сойдёт =)
    - дальше, если использую циклы с массивами, то пытаюсь при каждом обходе циклы unset'ить массив который уже обработал/добавил в базу
    - если подгружаю файлы, то сразу как не нуждаюсь в них делаю unlink()
    - echo memory_get_usage() - рулит
    - и самое главное, обдумываю тактику написания кода ;)
     
Статус темы:
Закрыта.