@daMage

Оправдает ли себя HipHop PHP?

Добрый день. Пишу тестер для трейдинга и так уж вышло, что основной(а для бекенда вобще единственный) язык для меня - PHP. В общем, наступил моммент, когда на проверку уходит не один день, отчего и встал вопрос об ускорении сего процесса. Мне нужен прирост производительности около 15-20x, хотя, конечно, чем больше, тем лучше) Из статьи, увидел, что HipHop ускоряет работу примерно в 17 раз, но, как я понял, ребята из facebook отказались от компиляции и нерешли на виртуальную машину? Нужен совет от тех, кто работал с HipHop'ом или c виртуальной машиной. Даст ли мне это нужный прирост или стоит подумать о переписывании приложения на плюсы? По поводу тестера: преимущественно весь код это циклы, нужно прогнать много баров(цен) на соответствие шаблону.

C не знаю, так что придется изучить и если совет именно в переписывании, то если можно, подкиньте учебник под Visual 2013 Express. Пробовал несколько учебников, но после копирования примера, компилятор выдавал ошибку. Видимо для разных сред разработки свои особенности, а я в этом плане 0.
  • Вопрос задан
  • 2562 просмотра
Пригласить эксперта
Ответы на вопрос 5
opium
@opium
Просто люблю качественно работать
Да ничего он в 17 раз не ускоряет, если у вас медленный говнокод то просто отпрофайлите его и оптимизируйте медленные места и увеличите скорость в 15 раз.
Ответ написан
Комментировать
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Телепат режим on:
Если Вы пишите именно тестер - то скорее всего узкое место у Вас вовсе не код самих тестов - а их количество помноженное на длительность (которая в том числе зависит от времени ответа тестируемой системы).
Соответственно Вам нужно думать не про линейное ускорение работы, а про параллельное выполнение тестов.
Вот например общий рассказ про суровое решение Badoo habrahabr.ru/company/badoo/blog/220211 , у Вас более простая задача.
Ответ написан
Не подумайте, что я издеваюсь. Возможно вам просто надо уже сменить парадигму. Возьмите ваши алгоритмы и перепишете на питон - уже быстрее все будет.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Все очень зависит от того как написан ваш код. Если там есть обращения к глобальным переменныем, используются магические методы и т.д. то JIT это все будет очень плохо оптимизировать.

Вообще проще прогнать вашу тулзу через HHVM и посмотреть что будет. Но прирост если и будет то не в 20 раз а в 2-5 раз максимум. Но опять же нужно проверять. Просто поставьте hhvm (есть пакеты под основные дистрибьютивы) и прогоните тест.

Вообще у меня есть подозрения что и на php можно ускорить все в разы пересмотрев архитектуру приложения. В частности - паралелизация, работать в несколько потоков будет оно явно быстрее если нету зависимостей по данным между тестами. Ну и т.д.
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Насколько я вас понял, речь идёт о необходимости быстро просчитывать миллионы вариантов в единицу времени для выбора оптимальной стратегии. Скорее всего, вам потребуется C и OpenCL/CUDA. Подобного рода задачи, как показал опыт разных трейдеров в данной сфере, хорошо ложатся на архитектуру видеочипов. Получите ускорение в десятки раз.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы