ФорумПрограммированиеPHP для идиотовРасширения PHP → HHVM, Phalcon

HHVM, Phalcon

  • Абырвалг

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

    Spritz 7 января 2014 г. 15:24

    Какой-то неадекват-спамер апнул довольно интересную тему http://pyha.ru/forum/topic/7481 . В ней парень хочет вынести некоторые частоиспользуемые и медленные куски кода в расширение на c.

    Подход не новый. В Twig'е есть экстеншн, в котором реализована, пожалуй, наиболее частоиспользуемая ф-ция twig_get_attribute. Есть даже фреймворк Phalcon, который написан в виде сишного расширения к пыху. Причем он не такой уж и ебанутый, в нем есть и DI, и ORM'ка, и даже, темплейт энжин, похожий на твиг.

    В тоже время, а есть ли смысл так извращаться? Ведь можно поставить HHVM или Zephir от тех же Phalcon'овцев и пхпшный код будет автоматром транслитерироваться в сишный.

    Что вы думаете на это все? Пользовались ли уже в продакшене? Как по мне - очень перспективная тема.
  • vasa_c

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

    Spritz 7 января 2014 г. 22:09, спустя 6 часов 44 минуты 55 секунд

    Пользовались. Потом утечки памяти давили постоянно, а толку кот накакал.

    Думаю, если это действительно часто вызываемый маленький кусочек, который легко на сях воспроизвести и это даст ощутимый прирост, то есть смысл.
    А большой кусок логики переписывать, скорее всего смысла не имеет.
  • Абырвалг

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

    Spritz 8 января 2014 г. 3:01, спустя 4 часа 52 минуты 13 секунд

    а толку кот накакал.


    А как же подобные тесты http://www.hhvm.com/blog/1817/fastercgi-with-hhvm ? Брешут, собаки?) Или у тебя такой код специфический, что его hhvm не берет?
  • vasa_c

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

    Spritz 8 января 2014 г. 3:48, спустя 46 минут 53 секунды

    "пользовались" имел ввиду расширения для Ц писали.
    ХХВМ не пользовались.

    Не знаю, что у них за вордпресс в тестах.
    Смотрю на свой - 95% времени на злоебучие запросы к базе уходит.
    Ну, оптимизирует он мне оставшиеся 5% и толку то?
  • Timur

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

    Spritz 8 января 2014 г. 19:54, спустя 16 часов 5 минут 55 секунд

    Трансляцию в C++ делал HPHPc, предшественник HHVM. HHVM - это уже виртуальная машина, как та же JVM (байт-код, JIT-компиляция).

    В продакшене не приходилось использовать, но в скором времени вполне возможно - там уже практически 100%-ая совместимость с 5.4 и 5.5.
    Плюс радуют дополнительные фишки, типа scalar type hinting и generics. Основная проблема сейчас - отсутствие документации (т.е. её вообще нет, никакой), но вроде разработчики писали, что это среди основных приоритетов в этом году.
  • phpdude

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

    Spritz 7 февраля 2014 г. 19:54, спустя 29 дней 23 часа 59 минут

    Работа веб-сайта/веб-сервиса это 95% работы с базой.

    Если hiload там все по другому совсем.

    Как сказал олег выше - толку то от оптимизации этих 5%? Учитывая что там будет boost ну скажем ОЧЕНЬ СИЛЬНЫЙ - 50%. Итого 5% от 50% - 2.5%, было 100, стало 97.5.

    бред :)
    Сапожник без сапог
  • Timur

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

    Spritz 9 февраля 2014 г. 4:05, спустя 1 день 8 часов 10 минут

    Хз хз.

    Примерно полгода назад проводил эксперимент: ради спортивного интереса запустил один legacy-проект на битриксе под HHVM. Завелось почти сразу. Пришлось пофиксить пару строчек в самом битриксе, но это пустяки. Больше ничего не трогал.

    Ну так вот. Скорость генерации страниц увеличилась примерно в 1,5—2,5 раза. Подробных бенчмарков не делал, тупо было лень - смотрел время в dev tools браузера. Но результат был очевиден. Одна и та же машина, один и тот же код, одна и та же база, но работало быстрее.
    Конечно, битрикс - это хуевый показатель, но всё-таки.

    Для тяжелых фреймворков (ZF2, Symfony2, etc) прирост производительности тоже может быть заметным. Хотя, да, пока можно только гадать.

    {+++517+++}
    Кстати, новая презентация от разрабов.
    Приводят графики производительности для Symfony2 и Magento.

    +

    ▪ Scalar type hint (and much much more)
    ▪ Async co-routines
    ▪ Generics
    ▪ Collections (smart arrays)
    ▪ XHP (Integrated XHTML)
    ▪ User Attributes


    А так же про дебаггер и про написание расширений для PHP на самом PHP (трансляция в C++).
  • Абырвалг

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

    Spritz 9 февраля 2014 г. 7:16, спустя 3 часа 11 минут 8 секунд

    @Timur, ссылка битая. Вообще как я погляжу, у многих после переписа пыхи вставляются битые ссылки
  • Sinkler

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

    Spritz 9 февраля 2014 г. 7:45, спустя 29 минут 19 секунд

    а в маркдауне норм

    пыхослёт

  • vasa_c

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

    Spritz 9 февраля 2014 г. 9:21, спустя 1 час 36 минут 12 секунд

    Дуд вернулся, какая-то движуха началась
  • Sinkler

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

    Spritz 9 февраля 2014 г. 9:26, спустя 4 минуты 40 секунд

    так вернулся, что снова нету

    Спустя 23 сек.

    а, он же обещал не материться, поэтому нечего теперь писать :D

  • adw0rd

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

    Spritz 9 февраля 2014 г. 10:18, спустя 51 минуту 36 секунд

    Да надо просто допиливать bbcode парсер, он стремненький, так как ббкоды уже никому не нужны в мире видимо...

    Если есть на примете что-то лучше или есть желание пофиксить текущий, то смотрите "forum/utils.py" и помогайте проекту

    adw/0
  • phpdude

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

    Spritz 9 февраля 2014 г. 10:54, спустя 36 минут 23 секунды

    тимур, я бы тебя процитировал да не вижу кнопки :D

    Есть пара НО в твоем тесте.

    Ты уверен что запускал код с опкод кешером любым? XCache/Apc/ZendOptimizer?

    Смотрел статистику кешера? Хватало там памяти на кеширование? Проверялись ли mt у файлов?

    Прирост может быть только ан нативных функциях, которые они могли переписать в хпхвм, вот в это верю, ибо нативки работают часто очень странно. Недавно переделывал один простой до боли класс-прокси, мой код на пхп который просто в массиве([][]) искал массив попадающий под необходимые условия работал не соврать бы, но раз в 15-или 30 ли даж быстрее чем array_filter.

    Поэтому тесты не считаю пока не вижу environment ;)
    Сапожник без сапог
  • Timur

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

    Spritz 9 февраля 2014 г. 11:35, спустя 41 минуту 14 секунд

    @phpdude, не стану спорить :)
    APC был включен, но профайлингом не занимался. В тот момент, я больше хотел убедиться что этот HHVM вообще работает. Так что это скорее просто «субъективное наблюдение», не более того.

    По поводу источников прироста производительности - у них там вроде как JIT, вывод типов и т.д.

    @Абырвалг, попробую ещё раз - http://dl.hhvm.com/resources/conf/2014/Hacking%20with%20HHVM.pdf
  • phpdude

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

    Spritz 9 февраля 2014 г. 11:51, спустя 16 минут 16 секунд

    @Timur, Если APC с дефолтными настройками, то на бирикс я полагаю их недостаточно))))

    ну да пох, работает и хрен с ним
    Сапожник без сапог

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