|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
По долгу службы пришлось запилить максимально простой и быстрый фреймворк для создания REST API :) Выложил исходники с бенчмарками на GitHub: https://github.com/gotzmann/comet Пока тестируем в работе, но в целом это плюс-минус продакшен-реди решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 21:35 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сергей Гоцуляк, Асинхронных пхп - ну такое. Там исторически никогда не заботились, чтобы процесс/поток жил дольше одного запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 04:43 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
crutchmaster Асинхронных пхп - ну такое. оно развивается и имеет право на жизнь но если хочется прям быстро, то стоит посмотреть в сторону nodejs, go. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 06:16 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений оно развивается и имеет право на жизнь Дегтярев Евгений но если хочется прям быстро, то стоит посмотреть в сторону nodejs, go. Дело не в быстро, а в том, что оно потечёт, потому что всегда считалось, что пхп после отработки запроса успешно дохнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 06:44 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сейчас это не более чем страшилка, уже на последних версиях пятерки можно было запускать скрипты, которые работали сутками. Вероятность утечек плюс-минус такая же как если бы это был не пхп ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 07:20 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, Дело не в самом пхп, а во всём том обвесе, что тащится за ним. Авторы либ других языков знали про утечки и что-то делали и всё равно они текут, а тут всем было похрену. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 07:55 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
crutchmaster, Здесь нет асинхронщины в чистом виде. Код PHP в рамках одного вызова работает предсказуемым образом. Ускорение достигается за счет однократной инициализации сервера на старте и грамотного распределения нагрузки по воркерам. В случае проблем типа утечки памяти или исключения - воркер будет прибит и рестартован автоматически. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:30 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, Go будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp. Если взять полноценный фреймворк вроде Gin, скорее всего будет медленнее, чем решение на базе Comet. Ну а NodeJS заметно отстанет даже от решения на Go. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:33 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сергей Гоцуляк Go будет быстрее, если тюнить либами вне стандартной библиотеки типа fasthttp ты сильно льстишь php ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 14:21 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений ты сильно льстишь php я сильно сомневаюсь что http сервер на php (а он в Workerman на пхп) быстрее, чем на компилируемом языке, такие же сомнения по поводу корректности реализации http сервера в Workerman, не увидел информации какие версии поддерживаются. на страничке либы ноль подробностей про бенчмарк, т.ч. не понятно что стоит за этими 36k rps в readme Workerman есть и бенч и параметры теста - 138k rps, причем это, не http а tcp, т.е. никакого парсинга протокола, только прием буфера и отправка статичного буфера. при этом затычка на go с использованием стандартной net/http, которая возвращает hello world, выдает в тех же условиях 155k rps ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 19:32 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений Сергей Гоцуляк 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) обойдут их в два-три раза даже не напрягаясь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:03 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Дегтярев Евгений Дегтярев Евгений ты сильно льстишь php я сильно сомневаюсь что http сервер на php (а он в Workerman на пхп) быстрее, чем на компилируемом языке Ну я выше дал ссылку - зачем верить и сомневаться, если можно просто сравнить цифры? На сегодня PHP позволяет писать сравнимые по производительсности с Go сервисы, и уж точно более быстрые чем на любом NodeJS / Python фреймворке. Да, пока отставает от Java / Net Core, но это не какие-то сумасшедшие цифры, которые вполне могут измениться с выходом JIT-ованного PHP8. Я надеюсь на это, хотя и как есть устраивает вполне :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:06 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сергей Гоцуляк и понимаю, что если из топа убрать фреймворки на базе fasthttp, то php займет половину топа. А если сравнить с полноценными go-фреймворками типа gin / chi, то быстрые php-шные проекты (workerman, swoole, php-ngx) обойдут их в два-три раза даже не напрягаясь :) Тест тепличный, нагрузки нет, io нет, мериться тупой отдачей hello world смысла мало. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:15 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сергей Гоцуляк Да, пока отставает от Java / Net Core, но это не какие-то сумасшедшие цифры, которые вполне могут измениться с выходом JIT-ованного PHP8 Если там нет даже jit, то пых не может обгонять ни го, ни ноду, ни пистон by design. Единственный шанс - вызов си кода, но это - читерство. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:17 |
|
Comet - самый быстрый PHP фреймворк для REST API
|
|||
---|---|---|---|
#18+
Сергей Гоцуляк Ну вот я смотрю бенчмарки 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 08:57 |
|
|
start [/forum/topic.php?fid=23&msg=39956634&tid=1459685]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 426ms |
0 / 0 |