ФорумСообществоФлейм → Panic Client Emulator

Panic Client Emulator

  • artoodetoo

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

    Spritz 15 января 2013 г. 21:53

    Провайдер домашнего интернета меня расстраивает. Собираюсь сменить. Удручает только то, что другие не лучше.

    В связи с этим написал эмулятор жизни клиента. Если у текущего провайдера случается проблема, клиент уходит к другому. Прошу любить:

    <?php

    header('Content-type: text/plain');

    $providers = array('prov A', 'prov B', 'prov C');
    $counters = array(
    'client' => 0,
    'prov A' => 0,
    'prov B' => 0,
    'prov C' => 0);

    // CURRENT CLIENT'S PROVIDER
    $cur_prov = 'prov A';

    set_time_limit(0);
    for ($i = 1; $i <= 100000; ++$i) {
       // each provider has right to fail
       foreach ($providers as $prov) {
           // if shit happens
           if (mt_rand(1, 10) == 5) {
               $counters[$prov]++;
               // and our client is on THIS provider
               if ($cur_prov == $prov) {
                   $counters['client']++;
                   // client looking for better provider
                   while (TRUE) {
                       // reasonable choice
                       $x = mt_rand(0, count($providers)-1);
                       $next_prov = $providers[$x];
                       if ($cur_prov != $next_prov) {
                           $cur_prov = $next_prov;
                           break;
                       }
                   }
               }
           }
       }
    }

    // Results
    var_export($counters);


    100тыщ достаточно большое число чтобы статистические законы работали.
    ιιlllιlllι унц-унц
  • kostyl

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

    Spritz 15 января 2013 г. 22:15, спустя 22 минуты 7 секунд

    Этот скрипт на домашней тачке работает?
  • phpdude

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

    Spritz 15 января 2013 г. 22:22, спустя 7 минут 28 секунд

    ЗАПУСТИЛ НА ПРОДАКШЕНЕ
    Сапожник без сапог

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