Александр Воробьев

Александр Воробьев
Рейтинг
64
Регистрация
03.02.2020
Sly32 #:
да.
Мысль ушла.. Итак про "на чистом ВП vs на чистом FastAPi" тут уже по определению не логичное сравнение. Того чего нет в ВП нет и в фастапи (пока забываем про асинхронность) - т.е. надо делать и там и там. Т.е. можно вынести за скобки. То что есть нужное в ВП но нет в фастапи. придется делать в ВП.... т.е. все логично: это инструменты разного уровня: фастапи, в моем понимании, более низкоуровниевый инструмент, CMS - более высокоуровниевый. т.е. тут понятие "на чистом" такое не особо понятное.
Sly32 #:
но свой  фастапи сервис и голый вордпрес я развернул локально и проверил его стандартным апач бенчмарком. Ничего нет из головы

Максимально бесполезное сравнение. Мой скрипт быстрее работает чем твой FastApi. Значит ли это, что FastAPI "не подходит для серьезных проектов". Вот мой скрипт

<?php echo "hi";
Sly32 #:
Собственно об этом и топик - использовать нужные инструменты в нужном месте.

Ну как бы исходя и топика здесь вообще все с этим согласны. И только есть сведения, что кто то где то говорил иное. Но раз это в этом топике (ни в виде ссылок, ни в виде цитат) не приведено - значит это (наличие кого то думающего иначе) не существенно , а потому топик как бы не про это становится. Или тут кто то говорил, что ВП абсолютно для всего?

Sly32 #:
Почему? давай перепишем на пайтоне. Добавим туда ИИ - будет круто)

Переписать я сам лично могу на Си или С++ и он гарантированно будет работать быстрее (и у меня даже есть уже готовые некоторые "компоненты" даже могу прям сейчас через FFI подключить). Только вот в чем от этого профит? По сути ты предлагаешь взять в разработку еще 100500 фишек моего сервиса, на которые я сейчас вообще не трачу времени ни секунды. В условиях того, что: команда не большая и доход от сервиса не в триллионах измеряется, это будет очень не разумное решение.

Sly32 #:
Но в техническом плане это неинтересно.  там работа для копирайтеров, редакторов 

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

Sly32 #:
В тестах не учитываются возможности асинхронности Fastapi  и в реальной ситуации он все пхпшные фреймворки оставит позади.

А ты удосужился почитать про те инструменты, что я привел в сравнении? ;) Думаешь я их просто рандомно выбрал? Почитай. 

Sly32 #:
Именно поэтому я на 2-й год работы с ВП выкинул абсолютно все плагины и написал свои, привязанные к моей теме, оптимизированные под мои нужды. В них не было никакой универсальности но они и по производительности были на порядок выше. 

Тут главное не забыться и не стать в ряды сам знаешь кого.... ;)   Уверен FastAPI тоже можно выкинуть из тех же соображений. Вопрос "лишь" во времени.

Sly32 #:
Это все разговор про сферического коня в вакууме. Для какого серьезного проекта есть 99% функционала в ВП? Магазин на вукоммерс? Там поищи тут темы, где обсуждают проблемы.

Ну для начала озвучь критерии "серьезности". Ты ввел этот термин в обсуждение, но его не расшифровал. Лично для меня такие обобщения из той же серии что и разговоры сам знаешь кого про неких программистов умеющих/не умеющих думать своей головой :)

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

Sly32 #:

Но последнее не учитываем. Это все развлечение для меня, ничего сложного.  Берешься ты сделать это на ВП. Или кто другой хочет доказать мне что ВП для всего годится?

Я даже помогу с ТЗ, Дерзайте. Но на чистом ВП, на плагинах)

Я правильно понимаю, что ты его сделал на чистом FastAPI?  Ну я тебе предложу сервис построения выкроек сделать на FastAPi. Ну глупость же. Вопрос лишь в каком объеме (на твоем проекте) ВП может покрыть функционал. Т.е. есть некий уникальный функционал, который ты будешь делать сам в любом случае, а есть функционал обобщенный. Ну и как со свободным временем. 

В любом случае. небольшой пример: 

Предположим у нас есть серьезный проект. Нам надо выбрать инстурментарий.

95% требующегося функционала уже реализовано в ВП. При этом, если  делать на ВП, будет использоваться 99%  функционала ВП.

Есть только одна проблема: у нас будет одна страница на которой в реальном времени отражаются данные со множества крипто бирж (с какойто обработкой - являющейся уникальной фишкой проекта) и на эту страниц будет приходить масса пользователей. (ну плюс на главной странице сайта "виджет" с выжимкой из этих данных).  Конкертно на эту страницу ожидается что будет просто поток пользователей (там к тому же 100500 фильтров).

Какой подход грамотней:

1. Сделать все полностью на условном FastAPI

2. Сделать все на ВП, но только эту страницу вынести в отдельный сервис

Для начала немного в сторону. Раз уж с первого поста фигурировало "Напишу в сравнении с FastAPI" то меня заинтересовало сравнение этого инструмента с миром PHP (именно с аналогичными инструментами). Сам проводить бенчи поленился (да я и не работал с этими инструментами - велик шанс накосячить и получить не очень корректные результаты) - спросил у ИИ собрать инфу:

FastAPI (Python + uvicorn): ~30,000-50,000 req/sec

PHP (Plain): ~80,000-120,000 req/sec

PHP + RoadRunner: ~150,000-200,000 req/sec

PHP + Swoole: ~180,000-250,000 req/sec

PHP + FrankenPHP: ~160,000-220,000 req/sec

Еще 

Simple JSON endpoint:

- FastAPI + uvicorn:     ~45,000 req/sec

- PHP 8.3 + FPM:         ~95,000 req/sec  

- PHP 8.3 + RoadRunner:  ~180,000 req/sec

- PHP 8.3 + Swoole:      ~210,000 req/sec


Database query endpoint:

- FastAPI + asyncpg:     ~8,000 req/sec

- PHP + PDO + FPM:       ~12,000 req/sec

- PHP + PDO + RoadRunner: ~25,000 req/sec


Т.е. просадка хорошая получается от запросов в БД и методы решения примерно одни и теже в этом плане. Не зависимо от инструмента. Если же для нас важна исключительно производительность - то как бы стоит оставаться в стане PHP.   

Возвращаясь к тормознутости ВП - допускаю, что  он генерит на старте много запросов в БД.  

Ну и ИИ про него нашел такое:

  • Обычный WordPress: ~50-200 req/sec (зависит от плагинов)
  • WordPress + Object Cache: ~300-500 req/sec
  • Headless WordPress + отдельный API на RoadRunner: ~10,000+ req/sec

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

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


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

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

Ну, а по сути. При выборе инструмента для применения инструмента на проекте анализируется дофига метрик, а не только "тормознутость". (И Это не критерий какого либо серьезности). И у каждой метрики для каждого проекта свой коэффициент важности. По этому любой вид кеширования это может быть вполне правильное и грамотное решение. Т.е. если тупо принимать решение "аа ВП тормоит, а кеширование это костыль, возьмем фреймворк" - таких решателей надо гнать ссаной тряпкой, т.к. другие критерии могут быть важны.

Вполне рабочее решение (существующее) отдаем статично страницу, а потом хоть отдельные элементы (которые протухли) обновляем.  Самое главное если это осмысленно принятое решение, а не уровня "в среднем по больнице это плохо(или хорошо) - значит не применяем (или применяем)".

Причем если проект начинает беспокоить "тормознутость", то всегда есть решения вполне рабочие - выйти в какой то части за пределы штатного функционала. И если ВП решает овердохрена других задач проекта, что не так?

Ты говоришь "ВП тормозит". И чё?   Можно было бы и попробовать опровергнуть, но как минимум надо внятые критерии иметь. Тормозит по сравнению с чем? (только не нужны адекватные сравнения, а не FastAPI - который абсолютно другой инструмент и для других целей)

Тормозит на каких задачах?

Sly32 #:
Такие страницы будут работать напрямую с ВП уже и тут во всей красе приедут его недостатки с ядром, ненужными плагинами и прочими плюшками. 

Ну мне ИИ предложил целых 5 методов, как получить облегченный маршрут из коробки. Включая headless режим, в котором кстати (по заявлениям ИИ) вполне рабочим решением может быть применение FastAPI. 

Sly32 #:
Ты не согласен с тормознутостью ВП - опровергни

Поясни предлагаемый на замену вариант. Тормознутость есть смысл анализировать в сравнении. Ну и так же уточнение: остальные критерии по которым обычно выбирают инструменты тоже откидывать?

Sly32 #:
Когда мне в ответ на аргументы  начинают рассказывать про кэш, я уже не знаю, плакать или смеятся.

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

Sly32 #:
По итогу пользователь даже не доходит до ВП - ему отдается чистая статика - и об этом я говорил.
Даже если так что с того? Или ты рассматриваешь какие то очень узкие вопросы по отдельности, а не "подходит ли ВП конкретному проекту в целом"?
Sly32 #:
А так же о том что вы этом случае можно забыть про динамический сайт, любой нормальный интерактив с пользователем. Решение для инфо, контентников а не для сервисов
Не совсем так. При осмысленном подходе не все ж так "прямолинейно". У нас же не только черное/белое.
У меня уже несколько лет только одна иконка - корзина. 
все как всегда: Кто умеет тот делает, кто не умеет - учит других.  (Конечно это не про профессиональных педагогов) :)
Всего: 1030