Pull to refresh

Comments 56

Go и ноду попробую в следующий раз)

фига вы их в одно предложение засунули) Rust-а не хватает)

Эм, логичнее было бы сравнивать PHP с нодой, гошкой и растом, причем свежий PHP-FPM версии 8.5+ и фреймворком грамотно реализующим PSR стандарты, например Slim 4+.

логичнее было бы сравнивать PHP с нодой, гошкой и растом

этих сравнений валом, а сравнение в статье - редкость, в чем и ценность.

8.5 не сильно от 8.4 по производительности отличается и сейчас в основном 8.4 распространена везде, а PSR на производительность не влияет, т е ваши возмущения по сути высосаны из пальца, а статья хорошая

в основном 8.4 распространена везде

А у меня в основном везде распространен 8.5.4.

8.5 не сильно от 8.4 по производительности отличается

Ну если до 15% на CPU-heavy это для вас не сильно, то конечно, да.

ваши возмущения по сути высосаны из пальца, а статья хорошая

Те конкурентов будем брать свежие версии, а PHP не обязательно. У конкурентов будем сравнивать конкретные вылизанные фреймворки/движки, а PHP не обязательно.

А то вдруг достойно себя покажет, я вас правильно понял?

Ну если до 15% на CPU-heavy это для вас не сильно, то конечно, да.

до 15 процентов это сколько? 0 тоже находится до 15. 15 процентов в одном кейсе не означает производительность во всех кейсах. Вот по факту сравнение:

https://tideways.com/profiler/blog/php-benchmarks-8-5-vs-8-4-8-3-and-7-4

А у меня в основном везде распространен 8.5.4.

Вы реально думаете что кому-то интересно что там у вас?

А то вдруг достойно себя покажет

В статье как раз это и указано, PHP достойно себя показал. Dart и Drogon очень сложно назвать конкурентами PHP. Статья является исследованием из соображений личного интереса, а не маркетингом. Иногда надо вылезать из своих фантазий.

до 15 процентов это сколько?

от 5 до 15 в разных тестов из того что я видел.

Вы реально думаете что кому-то интересно что там у вас?

Хамство в аргументации тоже не поможет, и отучайтесь говорить за всех.

В статье как раз это и указано, PHP достойно себя показал. 

А я писал про сравнение с нодой, гошкой и растом. Вы еще и написанное с трудом воспринимаете.

Те от 5 до 15% для вас не достаточный аргумент, потому что у "всех" в вашем понимании стоит не последняя версия и поэтому как я посмел вообще что-то писать.

Я что, воинствующего адепта стриггерил?

Те от 5 до 15% для вас не достаточный аргумент

Факты будут или только слова? Выше по ссылке есть факт реальной производительности. Аргументы и факты газету помните?) так вот да, без фактов аргумент не достаточный. У меня на сервере стоят обе версии и в среднем работают примерно с одинаковой производительностью, 15 процентов оверхеда там не видно.
Вот факты:
https://kinsta.com/blog/php-benchmarks
https://tideways.com/profiler/blog/php-benchmarks-8-5-vs-8-4-8-3-and-7-4
И я наблюдаю примерно такой же прирост в среднем.

Есть ещё WooCommerce: +33,07% и CodeIgniter: +54,37%, но там на PHP 8.5 существенно уменьшился размер возвращаемой страницы. Поэтому эти цифры нельзя приписывать чистому ускорению PHP. Grav - отдельный результат конкретного теста, переносить его на другие приложения нельзя.

Жду ваши факты.

отучайтесь говорить за всех.

это к предыдущему оратору

А я писал про сравнение с нодой, гошкой и растом. 

Статья не про них. Определитесь с тем, кого вы считаете конкурентами PHP. Это не я с трудом воспринимаю, это вы в своем уме почему-то решили сравнивать PHP с нодой, гошкой и растом.

Я что, воинствующего адепта стриггерил?

Думаю, нет)

Факты будут или только слова?

Первая ссылка в гугле, найдите там поиском абзац:

For PHP 8.4 users, this data suggests that upgrading directly to 8.5 (skipping 8.4) is the optimal path. If you are already on 8.4, the 14.4% improvement from upgrading to 8.5 is a compelling reason to make the jump.

Определитесь с тем, кого вы считаете конкурентами PHP.

Из того, что я вижу на бекендах: нода, го, раст. Не dart и не C++.

Думаю, нет)

Это обнадеживает.

Первая ссылка в гугле

Статья показывает возможный прирост +14,4% в конкретном тесте, т е в одном кейсе, как я писал выше, но не доказывает такое ускорение PHP в среднем для Laravel/Symfony/WordPress, инфа с 0% improvement в другом кейсе в этой статье тоже есть.

Ну если пруфы не пруфы, то тут медицина бессильна.

Контекст, выдернутый из общего - это не пруфы, а медицина тут не причем

Я вам прямо абзац выводов из phpbenchmark привел. Если это для вас вырвано из контекста, то я не вижу как можно продолжать диалог.

Один абзац из бенчмарков ничего не означает, прогоните тесты, будут видны реальные цифры + там по ссылке тест синтетический (SELECT 1 as ok), это не реальное поведение приложения с кучей бизнес логики и разнообразными сложными запросами. Это нельзя брать за эталон реальной производительности. Это далеко от реальности, Карл.

Один абзац из бенчмарков ничего не означает

Раздел выводов из статьи PHP Performance Engineer о свежем тестировании на PHPBenchLab ничего не означает. Я вас услышал. Правда, фиг знает как это комментировать, вы меня прям обезоружили.

я могу вам этот же синтетический тест прогнать на других языках программирования, как минимум на Дарте и на C++, но он не будет отражать реальное поведение приложений и различие в производительности этих языков

возможно, я не знаю каких-то секретов оптимизации C++ и попрошу тех, кто знает - написать подобную статью

1. чего их писать их и так тысячи, хоть в формате видео https://www.youtube.com/watch?v=2KON1UPZEIc хоть в книгах "C++ High Performance"
2. о какой оптимизации может идти речь без профилирования?

мощь C++ в практически безгранмичной возможности оптимизировать узкие места, там где у дригих языков способы оптимизации заканчиваются в С++ они только начинаются

В реальной жизни в обычных веб-сервисах и сайтах у вас по факту всё будет в БД упираться. На каком бы языке вы не писали.

упираться в БД можно очень сильно по разному, начиная с того что некоторые могут банально не кеширвоать коннекты и заканчивая кривой архитектурой таблиц, кешей и шардирование

Сейчас скорее проблема не бэкэнда как такового а спецификаций, которые не отражают текущие потребности. С одной стороны давлеющее легаси из 90-х с другой микросервисы, распределённые архитектуры, асинхронность и кроссплатформ. Поэтому тут язык уже не важен, главное чтобы он (вместе с фреймворком) мог обернуть необходимые протоколы без лишней рутины, ну и конечно же если есть для этого скиллы, MCP или даже файн-тюн модели то это несомненно перевесит любые недостатки языка.

Вы всё в одну кучу слили и перемешали, при чем тут файн-тюн вообще?

Модели ad hoc, применимо к синтезу необходимого функционала с минимальным количеством "глюков" и расходом токенов при поиске необходимых данных - собственно это и есть специализированные модели с файн-тюном. Вообще говоря это довольно обширная задача - синхронизация документации и того как это реализовано с точки зрения дальнейшего использования хоть LLM хоть питон-генератором. Обычно делается векторная БД с соответствующими туда запросами агентами, далее по чанкам можно уже дать если необходимо исходный документ. До сих пор это делалось человеком для человека но не для машины так скажем. Все упомянутые в публикации инструменты имеют уже историю лет 20-30 и отвечают задачам на тот момент когда они только появились. Новейшие же инструменты требуют совершенно других подходов, здесь уже язык уходит на второй план, на первом месте это генерация кода под задачу, мета-языки спецификаций, обёртка тестами, автоматизация проверки граничных значений.

Я использовал в основном то, что реально попадается на практике: отправка сообщений, хеширование, авторизация, получение блокировки записи, запись, чтение, удаление, обновление в SQLite. Код в этой публикации выложить нет возможности, возможно обновлю статью позже, добавив исходники.

Хотелось бы посмотреть, потому что пока выглядит неубедительно. Если у вас просто голая обработка хттп и походы в базу то что вы собственно тестируете ?

В реальном проекте будет описана куча логики, вот там и будет видно как он себя ведет, где тормозит и где ест память... а так, сам sqlite вполне возможно везде одна и та же сишная библиотека, вызовы который дергаются из разных ЯП. Остается только скорость создания потоков, да минимальный оверхед на обработку запроса и отправку ответа.

Если у вас просто голая обработка хттп и походы в базу

мне бы такое даже в голову не пришло написать.

Но вы же тестировали свой проект переписанным на разных языках. Сколько же там логики что вы пошли на такой шаг ?

Проект огромный, я не переписывал весь бэкенд, а попробовал переписать части, которые отвечают за авторизацию, систему ролей, расширенные операции в интерфейсе над сущностями и чат (он кстати на wss) между сотрудниками, это примерно 4 из 40 по объему кода, чтобы проверить, даст ли по факту значимое ускорение переписывание бэкенда на Дарт или C++. Проект на фронте полностью на Flutter, поэтому в качестве вариантов для сервера был выбран Дарт, а Drogon был выбран из-за своей нашумевшей производительности. Исходники показать не могу из-за политик, но ваше предположение об элементарных запросах к базе в данном случае не верно.

Ну то что вы описали и выглядит как "получим запрос, дернем базу и выдадим ответ". По крайней мере от авторизации и системы ролей я бы ничего большего не ожидал.

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

По крайней мере от авторизации и системы ролей я бы ничего большего не ожидал.

ABAC системы ролей - это далеко не просто дернуть инфу из одной таблицы, там очень много динамически меняющихся факторов.

Под небольшой нагрузкой разница не сильно ощутима - это да. C++ под высокой нагрузкой дал очень хорошие результаты и в среднем по памяти выигрыш в 3 раза, в выводе я об этом написал. Время транспорта в сети так же необходимо учитывать, т к это не локальное тестирование. Но неоднозначное удивление не только у вас.
Я продолжаю тестировать на потери и другие кейсы, буду обновлять статью.

Я бы на вашем месте попробовал бы как минимум еще один рантайм для PHP, кроме FPM. Например FrankenPHP.

Я бы на вашем месте

Из комментариев выше видно, что автор очень болезненно реагирует на подобные предложения. Хотя предложение здравое.

О! Снова Вы. А я смотрю вы тот еще склочник и любитель поделать замечаний другим. Вам бы сейчас поискать информацию о пике Даннинга-Крюгера. Возможно взгляните на себя совсем иначе :D Я серьезно! Загуглите :D

О! Снова Вы. 

Вы уже оправились от предыдущей атаки на меня? Я настолько запал вам в душу, что теперь бегаете за мной по всему порталу? Это приятно, хотя я и не ожидал поклонников.

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

Я комментирую только то, в чем разбираюсь, я ж не виноват что у меня 6 лет в ML, 10 лет в комплексной автоматизации и почти 20 лет в PHP (eCommerce)?

Поэтому для меня дико когда при сравнении берут php не последней версии, сравнивают его не с тем с чем он конкурируют, да еще показывают wooCommerсe и Codeigniter, который был актуален 10 лет назад, еще бы Magento взяли. Вам это ничего не скажет, вы обычный тролль, который, цитирую из прошлой переписки: "Да я вообще не в теме". При этом мнение свое имеете и пытаесь мне рассказать про эффект Даннинга-Крюгера. Это забавно.

Посмотрите мои комментарии, там либо претензии к ИИ-слопу, либо обсуждение ML сферы, либо благодарность за качественные статьи по этим же темам.

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

Вы скорее всего вообще не понимаете о чем я написал выше, да оно и не для вас написано. Я написал это для остальных читателей чтобы понимали, что происходит.

Для вас же я напишу следующее: если я вас раздражаю, то прошу прощения - это повторится.

Что, настолько заметно, что я вами одержим и бегаю, ищу, якобы случайной встречи? Ох, вы меня поймали! Да! Вы мне интересны. Вы умны, образованны и компетентны. Вы человек-магнит :D А теперь по делу - вы тот тип людей, которые дают замечания другим не потому что хотят изменить картину мира или что то исправить. У вас острое желание самоутвердится. Автор глуп, а я умён. Это ваш двигатель. Ваш мотив. Я всего лишь говорю что это очевидно все другим. Вы технически подкованы, но с социалкой и взаимодействием у вас проблема. Инта + 10, навыки + 6, харизма 0. Вы обижаете людей даже не понимая этого :D

А теперь по делу - вы тот тип людей, которые дают замечания другим не потому что хотят изменить картину мира или что то исправить.

Ну почему же, я не хочу видеть ИИ-слоп и кривые тесты, я об этом пишу в комментариях, вместо того чтобы молча минусовать статьи и авторов. Считаю что так честнее. Можете продолжать минусовать мои комментарии и в карму наведываться, я над ними не трясусь.

У вас острое желание самоутвердится. Автор глуп, а я умён.

Тут тоже мимо. Я давно прошел этот этап. Если бы я был на этом этапе, вряд ли я бы благодарил авторов за хорошие статьи, согласитесь, как-то не клеится. Тут либо самутверждаться, либо благодарить других.

Это ваш двигатель. Ваш мотив

В этой роли у меня жена.

Я всего лишь говорю что это очевидно все другим.

Вы вообще много говорите, отучайтесь говорить за всех. Если бы это было так, мне бы давно слили карму и я перестал бы иметь возможность комментировать.

Вы технически подкованы, но с социалкой и взаимодействием у вас проблема

Божечки, да я гик, пойду жене сказу, а, она в курсе.

Инта + 10, навыки + 6, харизма 0

Инсты нет (как и ТГ), навыки достаточные чтобы 6й год работать на себя в качестве ИП и в РФ и за рубежом, на харизму тоже не жалуюсь.

Вы обижаете людей даже не понимая этого :D

Я эмпат, поэтому прекрасно понимаю, что редко кто может нормально воспринять конструктивную критику, но молчать это путь вникуда.

Поэтому: не токсичные отношения, а крепкий брак (с) уж не помню кто.

Вы так и не поняли, почему никак не можете меня зацепить: я 20 лет женат, я просто не чувствую боли :).

Тут тоже мимо. Я давно прошел этот этап.

Ой, сомневаюсь :D Вы вчера буквально накинулись на 16-и летнего паренька за то что он "осмелился" написать на тему, в который вы разбираетесь. Вы пренебрегли всеми правилами приличия, к месту и не к месту кидали ссылку на свою статью, и упорствовали в том, что вы - истина в последней инстации. Вы хапали минусы, но упорствовали дальше, вы хапали еще больше минусов, но даже не собирались останавливаться :D Нет, вы совсем не прошли этот этап. Вы в нем обитаете постоянно :D И не инста, а инта - интеллект в смысле. Вы не гик добродушный, вы сухарь и задавака, в сознании сразу возникает брюзжащий профессор, который умен, но все его избегают. Даже жена ;)

Вы вчера буквально накинулись на 16-и летнего паренька за то что он "осмелился" написать на тему, в который вы разбираетесь.

Я не лезу смотреть кому сколько лет и ко всем авторам отношусь одинаково, как ко взрослым технически грамотным специалистам. Вы не принимаете подход: обьяснить человеку в чем ошибка чтобы в следующий раз он сделал лучше. Мне этот подход нравится больше чем молча минусить слабый материал.

Вы пренебрегли всеми правилами приличия, к месту и не к месту кидали ссылку на свою статью

Часть статей написаны в том числе и для того чтобы кидать ссылки на них, вместо того чтобы десятый раз детально обьяснять в комментарии одно и тоже.

Вы хапали минусы, но упорствовали дальше, вы хапали еще больше минусов, но даже не собирались останавливаться

С каких пор минусы сильнее логики? Я же писал что не трясусь над ними.

Нет, вы совсем не прошли этот этап

Тогда я бы трясся над минусами и лелеял карму. Вы опять себе противоречите.

И не инста, а инта - интеллект в смысле

Я ваш зумерский сленг не знаю (или какой это?). В перый раз слышу такое сокращение.

Вы не гик добродушный, вы сухарь и задавака, в сознании сразу возникает брюзжащий профессор, который умен, но все его избегают.

Никогда не претендовал на добродушность. Я следую своим настройкам справедливости.

Даже жена ;)

Жену постоянно поправлять себе дороже ;)

У вас острое желание самоутвердится. Автор глуп, а я умён. Это ваш двигатель. Ваш мотив.

вы так говорите, как будто это что-то плохое. жизненный пример (куда ж без него): мне в школе нравилось ошарашивать учителя и класс тем, что учитель писал на доске длинное уравнение, проходило 10-45 секунд, я поднимал руку, выходил и писал ответ (без промежуточных шагов). забери у меня этот азарт выпендриться, я б может был не так хорош в математике. люди постоянно самоутверждаются. это нормально.

Так я ж не говорю что самоутверждаться это плохо! Это главный внутренний двигатель :D Я говорю - плохо это делать на контрастах и за счет других.

Я просто хотел читать качественные технические статьи...

...в качестве главного арбитра, судьи и золотого эталона знаний :D

в качестве благодарного читателя.

Интересно, с какого раза до вас дойдет что я отличаюсь только тем что вместо того чтобы молча ставить минус я пишу, что по-моему мнению не так (не ставя минус ни в статью, ни в карму) . Я считаю что такая обратная связь лучше чем минус. Если статья интересная (для меня) я пишу коммент с благодарностью, ставлю автору плюс в статью и в карму.

Я не истина в последней инстанции, иногда ошибаюсь, но спорить со мной сложно, тк нужно либо сильно дружить с логикой либо иметь сопоставимый опыт. Всегда рад нормальным аргументам, а не отрицанию как в ветке выше с тестами.

Вы все еще пытаетесь цепляться за содержание, оправдывая свое поведение им. А я вам говорю о форме. Вы в каждом комменте всех пытаетесь уложить в свое прокрустово ложе. Станьте созидателем. Не критикуйте, а подсказывайте. Не утверждайте, а делитесь мнением. Хабр от такого подхода выиграет. Автор выиграет. Вы выиграете :)

Вы все еще пытаетесь цепляться за содержание

Я читаю текст и отвечаю на него и не собираюсь лазить к каждому автору в профиль и смотреть не 16 ли ему лет.

А я вам говорю о форме. Вы в каждом комменте всех пытаетесь уложить в свое прокрустово ложе

Комментарий не передает интонацию поэтому нейтральный часто воспринимается как негативый, это такое когнитивное искажение. Второе искажение в том, что более профессиональный комментарий (поправляющий либо предлагающий факты идущие в ращрез со статьей) также чаще вызывает негатив вне зависимости от того как написан. Были такие иссследования у психологов.

Поэтому то что вы предлагаете не сработает. Ну не любят человеки когда их поправляют.

Вы выиграете :)

Я уже выиграл, у меня есть на Хабре поклонник :)

Предлагаю вам отдохнуть немного от меня, чтобы завтра, с новыми силами снова в бой.

Спокойной ночи и постарайтесь, чтобы я вам не приснился, а то были уже преценденты ;)

Я уже выиграл, у меня есть на Хабре поклонник :)

сомнительная конечно победа, но 1 поклонник лучше чем 0 :)

Господа, а вы не могли бы выяснять отношения в личной переписке и не забивать комменты флудом? Спасибо.

интересует конкретика по C++: какой компилятор, версия, стандарт, какие флаги, не говоря уже про сам код (хотя бы небольшие блоки). автор признался, что не писал бекенд на плюсах, значит скорее всего не способен в оптимизацию на этом ЯП. компилятор плюсов (gcc/clang) при правильных подсказках в коде и флагах оптимизации творит настоящую черную магию по части быстродействия. да-да, я из тех людей, у которых встает при упоминании C++.

Оптимизация не проводилась не только на C++, все трое сравнивались на стандартных настройках, цифры на 600 запросах видно из таблицы. Если дарт заточить по оптимизации, то там тоже много магии получится.

Странно видеть PHP на устаревшем PHP-FPM, а не, например, Swoole. Ну и добавьте Golang + Rust, так будет интереснее

Что странного? Всё три стека сравнивались на стандартных настройках. Странно что phpшники так болезненно реагируют на вполне неплохой результат PHP.

Userver для плюсов и фреймворки для python вообще не рассматриваются?

Userver согласен, сложноват, но ллм справится с созданием болванки.

Главная проблема PHP для меня - это отсутствие у языка, разработанного для бэкенда, встроенного веб-сервера и адекватной поддержки долгоживущих процессов. И без сторонних костылей невозможно написать что-то нормальное. Я устал от того, что в большом проекте надо доустанавливать огромное количество расширений и дополнительных системных пакетов. Если разработчики не сосредоточатся на этих проблемах, будущего у языка не будет.

После того, как я когда-то попробовал Go, все эти проблемы испарились, а все эти влажные истории что PHP очень доступный язык для начинающих, стали просто враньём. В итоге сейчас все новые проекты у меня на Go, а PHP остался только на дремучем legacy, которое скоро будет переписано на Go при помощи ИИ. Именно возможность легко переписать проект и убьет этот язык окончательно.

Sign up to leave a comment.

Articles