ФорумПрограммированиеPHP для идиотов → Задачка на микрооптимизацию, чтобы не скучали

Задачка на микрооптимизацию, чтобы не скучали

  • artoodetoo

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

    Spritz 18 февраля 2012 г. 14:48, спустя 21 минуту 56 секунд


    сейчас разберу ваши варианты… вы лохи, это уже понятно… щас…

    Ну чё, разобрал мой вариант?

    кто здесь? 8[]

    ну я оформлял красиво, я же не такой ленивый как ты )))


    на самом деле все молодцы, прям заставили старого R2D2 почесать репу. некоторые операции оказались "дороже", чем я думал. свой вариант переписал
    ιιlllιlllι унц-унц
  • kostyl

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

    Spritz 18 февраля 2012 г. 15:09, спустя 20 минут 34 секунды

    artoodetoo, молодец, хоть тест и грешит из-за таких вызовов, но я думаю, ты нас сделал.
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 18 февраля 2012 г. 15:12, спустя 3 минуты 3 секунды

    class Router
    {
       static function pathToClass($s)
       {
    $classPath = '';
    $f = strtok(trim($s, '/'), '/');

    while ($f) {
    $classPath .= ' ' . $f;
    $f = strtok('/');
    }

    return str_replace(
    array(' ', '\\1\\'), array('\\', ''),
    ucwords(str_replace('-', ' 1 ', $classPath))
    );
       }

       static function classToPath($s)
       {
           $path = '';
    $f = strtok($s, '\\');

    while ($f) {
    $path .= ' ' . $f;
    $f = strtok('\\');
    }

    return str_replace(' ', '/', strtolower(
    preg_replace('/([a-z])([A-Z])/', '$1-$2', $path)
    ));
       }
    }


    Твой:
    /alfa/beta-gamma/sigma<br/>
    \Alfa\BetaGamma\Sigma<br/>
    0.039743<br/>
    /alfa/beta-gamma/sigma<br/>
    0.092413<br/>


    Мой:
    /alfa/beta-gamma/sigma<br/>
    \Alfa\BetaGamma\Sigma<br/>
    0.019803<br/>
    /alfa/beta-gamma/sigma<br/>
    0.029193<br/>
  • kostyl

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

    Spritz 18 февраля 2012 г. 15:15, спустя 3 минуты 3 секунды

    Ivan, засунь свой класс в тот тест
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 18 февраля 2012 г. 15:20, спустя 5 минут 18 секунд

  • kostyl

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

    Spritz 18 февраля 2012 г. 15:23, спустя 2 минуты 22 секунды

    круто… Хочу еще добавить, что кажется $person::classToPath вызов дает погрешность
  • artoodetoo

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

    Spritz 18 февраля 2012 г. 15:54, спустя 31 минуту 28 секунд

    Ivan, красавчик
    kostyl, он дает одинаковый overhead для всех вызовов, так что на объективность сравнения не влияет
    ιιlllιlllι унц-унц
  • Абырвалг

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

    Spritz 18 февраля 2012 г. 16:13, спустя 18 минут 37 секунд

    кружок байтдрочеров)
  • phpdude

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

    Spritz 18 февраля 2012 г. 16:19, спустя 6 минут 25 секунд


    кружок байтдрочеров)
    это вам не симфони гавнокожить :D
    Сапожник без сапог
  • artoodetoo

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

    Spritz 18 февраля 2012 г. 16:28, спустя 8 минут 34 секунды

    vasa_c, что-то не получается с твоим кодом добиться твоего результата. проверь сам.

    свой код я переписал

    <?php

    class Artoodetoo
    {
    static function pathToClass($s)
    {
    return str_replace(' ', '', ucwords(str_replace('-', ' ', str_replace('/', ' \\ ', $s))));
    }

    static function classToPath($s)
    {
    return strtolower(str_replace('\\', '/', preg_replace('/([a-z])([A-Z])/', '$1-$2', $s)));
    }
    }


    вот новая таблица чудес:


    см. исходники в аттаче
    ιιlllιlllι унц-унц
  • Frozzeg

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

    Spritz 18 февраля 2012 г. 17:24, спустя 56 минут 33 секунды

    а если плагин для пхп написать на ассемблере ? :DDD
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 18 февраля 2012 г. 17:38, спустя 13 минут 59 секунд

    это не будет считаться, я и на перле могу накатать так, чтоб быстрее работало, раза в 4
  • NRG

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

    Spritz 18 февраля 2012 г. 18:25, спустя 46 минут 59 секунд


    кружок байтдрочеров)
    +1 =))))))))
  • Frozzeg

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

    Spritz 18 февраля 2012 г. 18:30, спустя 5 минут 1 секунду

    artoodetoo молодец, остальные обосрались!
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • technobulka

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

    Spritz 18 февраля 2012 г. 18:43, спустя 12 минут 20 секунд

    свой код я переписал

    мой код послужил примером?))
    Высокоуровневое абстрактное говно

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