Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Comet - самый быстрый PHP фреймворк для REST API / 15 сообщений из 15, страница 1 из 1
12.05.2020, 21:35
    #39956498
Comet - самый быстрый PHP фреймворк для REST API
По долгу службы пришлось запилить максимально простой и быстрый фреймворк для создания REST API :)

Выложил исходники с бенчмарками на GitHub:

https://github.com/gotzmann/comet

Пока тестируем в работе, но в целом это плюс-минус продакшен-реди решение.
...
Рейтинг: 0 / 0
13.05.2020, 04:43
    #39956622
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сергей Гоцуляк,

Асинхронных пхп - ну такое. Там исторически никогда не заботились, чтобы процесс/поток жил дольше одного запроса.
...
Рейтинг: 0 / 0
13.05.2020, 06:16
    #39956628
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
crutchmaster
Асинхронных пхп - ну такое.

оно развивается и имеет право на жизнь
но если хочется прям быстро, то стоит посмотреть в сторону nodejs, go.
...
Рейтинг: 0 / 0
13.05.2020, 06:44
    #39956630
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений
оно развивается и имеет право на жизнь

Дегтярев Евгений
но если хочется прям быстро, то стоит посмотреть в сторону nodejs, go.

Дело не в быстро, а в том, что оно потечёт, потому что всегда считалось, что пхп после отработки запроса успешно дохнет.
...
Рейтинг: 0 / 0
13.05.2020, 07:20
    #39956634
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сейчас это не более чем страшилка, уже на последних версиях пятерки можно было запускать скрипты, которые работали сутками. Вероятность утечек плюс-минус такая же как если бы это был не пхп
...
Рейтинг: 0 / 0
13.05.2020, 07:55
    #39956641
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений,

Дело не в самом пхп, а во всём том обвесе, что тащится за ним. Авторы либ других языков знали про утечки и что-то делали и всё равно они текут, а тут всем было похрену.
...
Рейтинг: 0 / 0
13.05.2020, 12:30
    #39956757
Comet - самый быстрый PHP фреймворк для REST API
crutchmaster,

Здесь нет асинхронщины в чистом виде. Код PHP в рамках одного вызова работает предсказуемым образом. Ускорение достигается за счет однократной инициализации сервера на старте и грамотного распределения нагрузки по воркерам. В случае проблем типа утечки памяти или исключения - воркер будет прибит и рестартован автоматически.
...
Рейтинг: 0 / 0
13.05.2020, 12:33
    #39956759
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений,

Go будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp. Если взять полноценный фреймворк вроде Gin, скорее всего будет медленнее, чем решение на базе Comet. Ну а NodeJS заметно отстанет даже от решения на Go.
...
Рейтинг: 0 / 0
13.05.2020, 14:21
    #39956856
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сергей Гоцуляк
Go будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp

ты сильно льстишь php
...
Рейтинг: 0 / 0
13.05.2020, 19:32
    #39957089
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений
ты сильно льстишь php

я сильно сомневаюсь что http сервер на php (а он в Workerman на пхп) быстрее, чем на компилируемом языке, такие же сомнения по поводу корректности реализации http сервера в Workerman, не увидел информации какие версии поддерживаются.
на страничке либы ноль подробностей про бенчмарк, т.ч. не понятно что стоит за этими 36k rps
в readme Workerman есть и бенч и параметры теста - 138k rps, причем это, не http а tcp, т.е. никакого парсинга протокола, только прием буфера и отправка статичного буфера.
при этом затычка на go с использованием стандартной net/http, которая возвращает hello world, выдает в тех же условиях 155k rps
...
Рейтинг: 0 / 0
13.05.2020, 22:03
    #39957136
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений
Сергей Гоцуляк
Go будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp

ты сильно льстишь php


Ну вот я смотрю бенчмарки

https://www.techempower.com/benchmarks/#section=test&runid=9a267248-17b0-4080-ac45-a50d25b4fc2a&hw=ph&test=json&l=zijnjz-1r

и понимаю, что если из топа убрать фреймворки на базе fasthttp, то php займет половину топа. А если сравнить с полноценными go-фреймворками типа gin / chi, то быстрые php-шные проекты (workerman, swoole, php-ngx) обойдут их в два-три раза даже не напрягаясь :)
...
Рейтинг: 0 / 0
13.05.2020, 22:06
    #39957138
Comet - самый быстрый PHP фреймворк для REST API
Дегтярев Евгений
Дегтярев Евгений
ты сильно льстишь php

я сильно сомневаюсь что http сервер на php (а он в Workerman на пхп) быстрее, чем на компилируемом языке


Ну я выше дал ссылку - зачем верить и сомневаться, если можно просто сравнить цифры?

На сегодня PHP позволяет писать сравнимые по производительсности с Go сервисы, и уж точно более быстрые чем на любом NodeJS / Python фреймворке.

Да, пока отставает от Java / Net Core, но это не какие-то сумасшедшие цифры, которые вполне могут измениться с выходом JIT-ованного PHP8. Я надеюсь на это, хотя и как есть устраивает вполне :)
...
Рейтинг: 0 / 0
13.05.2020, 22:15
    #39957142
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сергей Гоцуляк
и понимаю, что если из топа убрать фреймворки на базе fasthttp, то php займет половину топа. А если сравнить с полноценными go-фреймворками типа gin / chi, то быстрые php-шные проекты (workerman, swoole, php-ngx) обойдут их в два-три раза даже не напрягаясь :)

Тест тепличный, нагрузки нет, io нет, мериться тупой отдачей hello world смысла мало.
...
Рейтинг: 0 / 0
13.05.2020, 22:17
    #39957143
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сергей Гоцуляк
Да, пока отставает от Java / Net Core, но это не какие-то сумасшедшие цифры, которые вполне могут измениться с выходом JIT-ованного PHP8

Если там нет даже jit, то пых не может обгонять ни го, ни ноду, ни пистон by design. Единственный шанс - вызов си кода, но это - читерство.
...
Рейтинг: 0 / 0
14.05.2020, 08:57
    #39957248
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Comet - самый быстрый PHP фреймворк для REST API
Сергей Гоцуляк
Ну вот я смотрю бенчмарки

https://www.techempower.com/benchmarks/#section=test&runid=9a267248-17b0-4080-ac45-a50d25b4fc2a&hw=ph&test=json&l=zijnjz-1r

и понимаю, что если из топа убрать фреймворки на базе fasthttp, то php займет половину топа. А если сравнить с полноценными go-фреймворками типа gin / chi, то быстрые php-шные проекты (workerman, swoole, php-ngx) обойдут их в два-три раза даже не напрягаясь :)


давай по порядку

- этот benchmark как и все типичная писькомерка, хоть и основательная, но писькомерка, и смотреть на результаты надо понимая, решения там различными хаками подгоняются под бенчмарк, вряд ли это это можно назвать поддерживаемым кодом
- далее, посмотрел по различным сценариям и не увидел чтобы пхп рвал топ
- еще, не будем мешать все в одну кучу, workerman и swoole по сути не фреймворки а http серверы и сравнивать их надо, соответственно, c http серверами (net/http, fasthttp) и конкурировать тут может только swoole т.к. имеет нативную реализацию
- и еще, на предложение убрать fasthttp предложу убрать и workerman и swoole, они тоже не в ходят в стандартную библиотеку, и будем тогда сравнивать net/http и php-fpm

Сергей Гоцуляк
Дегтярев Евгений
пропущено...
я сильно сомневаюсь что http сервер на php (а он в Workerman на пхп) быстрее, чем на компилируемом языке

Ну я выше дал ссылку - зачем верить и сомневаться, если можно просто сравнить цифры?

Я и сравнил. Там все так как я и предположил. Решение на workerman ни в одном из сценариев не выигрывают у лидера на go. Т.е. проигрыш уже в базовом компоненте. А любой рест сервис не сферический конь в безвоздушном пространстве. Там будет логика обработки, работа с базами, файловой системой, другими сервисами, и все это будет пхп код, который будет исполняться медленнее нативного. Не убедил.

авторGo будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp. Если взять полноценный фреймворк вроде Gin, скорее всего будет медленнее, чем решение на базе Comet.
дальнейшую дискуссию предлагаю продолжить после того как предоставишь пример своего бенчмарка и параметры окружения, на котором ты получил 36к rps
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Comet - самый быстрый PHP фреймворк для REST API / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]