2008-09-16 2 views
33

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

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

ответ

85

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

Это сложно, потому что есть много переменных.

Например, веб-приложения 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-web-сетей намного больше, чем сообщество Python-web; Услуги веб-хостинга с большей вероятностью будут предлагать поддержку PHP, чем поддержка Python; и т.д.

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

+15

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

1

Если это не сломано, не исправляйте его.

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

0

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

1

Заканчивать языков программирования перестрелки:

http://dada.perl.it/shootout/

+0

Этот тест кажется немного устаревшим, поскольку он использует только PHP 4, который существенно отличается от PHP 5 в большинстве способов, включая производительность. – selfawaresoup 2009-12-27 19:52:43

+0

перестрелка debian является более актуальной, хотя и для другой платформы. http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=python Это показывает, что они очень похожи - одно ОГРОМНОЕ несоответствие происходит от python, использующего GMP для вычисления цифр pi-цифр. – Jimmy 2010-03-09 20:17:33

1

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

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

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

2

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

2

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

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

28

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

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

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

+1

Любые тесты, которые я видел, также показывают, что python не соответствует более новым версиям PHP. Хотя мне еще предстоит увидеть, что кто-то сравнивает производительность в полном приложении. – mschuett 2014-12-17 20:29:09

1

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

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

0

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

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

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

4

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

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

Смежные вопросы