ФорумПрограммированиеPHP для идиотов → Что такое gc_probability и gc_divisor?

Что такое gc_probability и gc_divisor?

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 9:04

    Я толком не пойму нафига они нужны
    зы. http://habrahabr.ru/blogs/think_aloud/13248/
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 9:16, спустя 12 минут 9 секунд

    вероятность запуска сборщика мусора вестимо.
    Спустя 30 сек.
    class Cache_File extends Cache
    {
    var $_machineSettings = array(
    'PREFIX' => 'fc',
    'EXT' => 'fch',
    'GC_PROBABILITY' => 0.1
    );
    // this cache machine is too slow
    var $_performanceLevel = 5;

    function Cache_File()
    {
    if (mt_rand(0, 99) < $this->_machineSettings['GC_PROBABILITY'] * 100)
    $this->_gc();
    }

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 9:20, спустя 3 минуты 52 секунды

    Ну это я понят, а второй? делитель? нахер он
    И вообще странная настройка… "вероятность"…
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 9:25, спустя 5 минут 11 секунд

    ниче странного, все корректно.

    а делитель - он вероятность уменьшает. Мой код можно было б переписать как

            function Cache_File()
    {
    if (mt_rand(0, 99) < $this->_machineSettings['GC_PROBABILITY']/_ДЕЛИТЕЛЬ_ * 100)
    $this->_gc();
    }


    но мне этот делитель нахуй не нужен. Вообще глупо, согласен. Одной вероятности хватило б, так они еще и делитель придумали.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 9:26, спустя 1 минуту 20 секунд

    почему странная … зачем он каждый раз нужен? лучше конечо его вообще просто по расписанию запускать, какбы логичнее, а то вероятность такое дело - можно и с первого раза детей наделать … а можно и годами не предохраняться))
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 9:28, спустя 1 минуту 29 секунд

    вот смотри, у меня сраный файловый кеш. Время от времени нужно подчищать помершие куски кеша. Делает это сборщик мусора. Не буду ж я каждый раз делать glob('*'), filetime($file)? так весь мой кеш по пизде пойдет. Поэтому нужно дать возможность настроить вероятность запуска сборщика мусора, что б он запускался 1 раз на 100 запусков скрипта, к примеру.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 9:39, спустя 11 минут 7 секунд

    вот я и говорю, есть lifetime, а нахуй вероятность - не понятно
    Спустя 103 сек.
    а делитель - он вероятность уменьшает.
    неужели нельзя было все в одном конфиге сделать?
    типа

    y = 100
    x = 25

    но можно же было сделать
    z = 4 #100/25
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 9:47, спустя 7 минут 57 секунд

    время жизни сессии не связано с вероятностью запуска GC напрямую.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 9:54, спустя 7 минут 25 секунд

    'session.gc_maxlifetime' ты об этом?
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 10:02, спустя 7 минут 42 секунды

    давай я еще раз приведу пример на моем файловом кеше. Есть парамтеры "время жизни кеша" и "вероятность запуска сборщика мусорв"

    Сборщик мусора обходит папку с кешем, получает время создания файла, сравнивает его с текущим временем и временем жизни. Если файл старый - удаляет его.
    Сборщик мусора запускается не каждый раз, а с какой-то вероятность. Андэрстэнд?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2009 г. 10:14, спустя 12 минут 16 секунд

    Абырвалг, это я понял, я тебя спрашиваю о другом.
    * А именно, нахуй нужен gc_divisor, когда можно самим поделить вероятность (gc_probability(100)/gc_divisor(2)=50…. ну а хули сразу не написать 50?) ?
    * Далее,
    время жизни сессии не связано с вероятностью запуска GC напрямую.

    'session.gc_maxlifetime' ты об этом?
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 1 декабря 2009 г. 10:18, спустя 3 минуты 45 секунд

    мой прошлый пост - ответ на
    вот я и говорю, есть lifetime, а нахуй вероятность - не понятно

    ты наверно просто перепутал, и вместо divisor написал lifetime.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!