Что быстрее: веб-страницы на Python или на PHP?

Что быстрее: веб-страницы на Python или веб-страницы на PHP?

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

Я знаю, что обслуживание базовой веб-страницы python через cgi медленнее, чем php, из-за того, что он каждый раз долго запускается.

Мне нравится использовать пилоны, и я бы все равно использовал его, если бы он был медленнее, чем php. Но если бы пилоны были быстрее, чем php, я мог бы, надеюсь, в конце концов убедить своего работодателя позволить мне преобразовать сайт в пилоны.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
40
0
58 329
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Если он не сломан, не чините его.

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

Единственно правильный ответ: «Это зависит от обстоятельств». Существует множество переменных, которые могут повлиять на производительность, и вы можете оптимизировать многие вещи в любой ситуации.

Вы должны иметь возможность обосновать необходимость переключения, а не просто сказать, что «это быстрее». Если сайт, построенный на технологии B, стоит на 20% больше времени разработчика на обслуживание в течение установленного периода (скажем, 3 года), вероятно, будет дешевле добавить еще один веб-сервер в систему, на которой работает технология A, чтобы преодолеть разрыв в производительности.

Просто сказать «мы должны переключиться на технологию B, потому что технология B - это Быстрее!» на самом деле не работает.

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

Примерно то же самое. Разница не должна быть достаточно большой, чтобы быть причиной выбора того или другого. Не пытайтесь сравнивать их, написав свои собственные крошечные тесты ("hello world"), потому что вы, вероятно, не получите результатов, которые репрезентативны для реального веб-сайта, генерирующего более сложную страницу.

PHP и Python достаточно похожи, чтобы не требовать переключения.

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

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

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

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

Любые тесты, которые я видел, также показывают недостаточную производительность Python по сравнению с более новыми версиями PHP. Хотя я еще не видел, чтобы кто-нибудь сравнивал производительность в полном приложении.

mschuett 17.12.2014 23:29
Ответ принят как подходящий

Похоже, вы не хотите сравнивать два языки, а хотите сравнить два веб-системы.

Это сложно, потому что здесь задействовано много переменных.

Например, веб-приложения Python могут использовать mod_wsgi для связи с веб-серверами, что быстрее, чем любой из типичных способов взаимодействия PHP с веб-серверами (даже mod_php оказывается медленнее, если вы используете Apache, потому что Apache может только используйте Prefork MPM с mod_php вместо многопоточного MPM, такого как Worker).

Также существует проблема компиляции кода. Как вы знаете, Python компилируется точно вовремя в байтовый код (файлы .pyc), когда файл запускается каждый раз, когда файл изменяется. Поэтому после первого запуска файла Python этап компиляции пропускается, и интерпретатор Python просто извлекает предварительно скомпилированный файл .pyc. Из-за этого можно утверждать, что Python имеет собственное преимущество перед PHP. Однако оптимизаторы и системы кеширования могут быть установлены для веб-сайтов PHP (мой любимый - eAccelerator) почти с таким же эффектом.

В общем, существует достаточно инструментов, так что один может делать почти все, что может сделать другой. Конечно, как отмечали другие, в бизнес-модели требуется больше, чем просто скорость переключения языков. У нас есть приложение, написанное на oCaml у моего нынешнего работодателя, что оказалось ошибкой, потому что первоначальный автор ушел из компании, и никто больше не хочет его трогать. Точно так же сообщество PHP-веб намного больше, чем сообщество Python-сети; Услуги хостинга веб-сайтов с большей вероятностью будут предлагать поддержку PHP, чем поддержку Python; и Т. Д.

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

Преимущество скомпилированных файлов с байтовым кодом .pyc в Python переоценивается при использовании чего-то вроде Apache / mod_wsgi. Это потому, что они вступают в игру только при первой загрузке модуля. После этого все кешируется в памяти между запросами. Системы кэширования байтового кода - более серьезное дело для PHP, потому что приложение эффективно выбрасывается после каждого запроса, и поэтому ему приходится перезагружать код для каждого запроса.

Graham Dumpleton 25.06.2009 06:26

организация ИБ не стала бы обдумывать это, если бы доступность не становилась проблемой.

Если это так, посмотрите на репликацию, балансировку нагрузки и много оперативной памяти.

Мне пришлось вернуться к веб-разработке на моей новой работе, и, если бы не Pylons / Python, возможно, я бы предпочел вместо этого жить в джунглях :) По моему субъективному мнению, PHP для детского сада, я сделал это на 3-м курсе of uni и, как я полагаю, многие уважающие себя (или переоценивающие) программисты не захотят возиться с кодом PHP.

Почему мои работодатели согласились? Мы (команда) только что перешли на Python, и им было нечего сказать. Веб-сайт по-прежнему является и будет на PHP, но мы разрабатываем другие приложения, в том числе веб-приложения, на Python. Преимущества пилонов? Вы можете интегрировать свои библиотеки Python в веб-приложение, и это, имхо, огромное преимущество.

Что касается производительности, то у нас все еще проблемы.

Я думаю, что классифицировать целый язык как «детский сад» немного легко. Тем более, что на самом деле довольно много уважающих себя инженеров-программистов в настоящее время используют PHP для разработки веб-приложений. Если вы спросите меня, любой уважающий себя веб-разработчик должен указать на C# как на лучший путь, если вам нужен «хороший язык», в отличие от PHP или Python, которые плохо подходят для ООП IMO. У Python есть своя философия, основанная на включении батарей, но ASP.NET имеет в основе очень приличную и последовательную структуру. (изменить: я сам являюсь веб-разработчиком PHP, чтобы добавить немного контекста.)

toon81 22.10.2011 15:18

@notageek «Вы можете интегрировать свои библиотеки Python в веб-приложение, и это, имхо, огромное преимущество». Можете ли вы привести мне пример, когда НЕЛЬЗЯ интегрировать собственные библиотеки в приложение PHP?

user151851 12.12.2013 07:21

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

JVE999 12.10.2014 05:14

Этот ответ был не очень приятным. Я знаю многих «уважающих себя» программистов, использующих PHP. Когда производительность является проблемой, на помощь приходят C++ и ASM, а не Python. Используйте инструменты, чтобы выполнить работу.

maiko 03.02.2016 17:39

Я бы предположил, что PHP (> 5.5) быстрее и надежнее для сложных веб-приложений, потому что он оптимизирован для написания сценариев веб-сайтов.

Многие из тестов, которые вы найдете в сети, созданы только для того, чтобы доказать, что предпочитаемый язык лучше. Но нельзя сравнивать 2 языка с математической задачей, выполняемой X раз. Для реального теста вам понадобятся две сопоставимые платформы с сотнями классов / файлов и веб-приложение, запускающее одновременно 100 клиентов.

Другие вопросы по теме