Переход с PHP на Ruby - это ответ на производительность? - PullRequest
1 голос
/ 04 мая 2010

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

Итак, PHP ушел в прошлое и его следует отложить в веб-приложениях, например, в пользу Ruby?

Обновление:

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

Спасибо

Ответы [ 8 ]

24 голосов
/ 04 мая 2010

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

9 голосов
/ 04 мая 2010

Существует множество веских причин для перехода с PHP на Ruby. Производительность не является одним из них. Некоторые из крупнейших сайтов в Интернете используют PHP. Он вполне способен хорошо работать, если вы правильно его используете.

Если вы работаете с высокопроизводительным приложением, при оптимизации скорости необходимо учитывать множество факторов:

  • Где ваши узкие места? На уровне базы данных или приложения?
  • Используете ли вы кэширование для ускорения запросов?
  • Можете ли вы повысить производительность за счет балансировки нагрузки или отделения сервера базы данных от веб-сервера. Аппаратные средства дешевы, программисты - нет.
  • Подумайте об использовании языка, оптимизированного для производительности, но продолжайте использовать PHP на внешнем.
5 голосов
/ 04 мая 2010

Если вы переключитесь с PHP на Ruby, пусть это будет по другой причине, чем производительность.

Ruby также не является компилируемым языком, и в прошлый раз, когда я посмотрел, он не был значительно быстрее PHP. Если ваш языковой интерпретатор является узким местом, переключитесь на скомпилированный язык, такой как C ++, C # или Java.

Вот некоторые случайные тесты .

4 голосов
/ 04 мая 2010

Ruby и PHP оба являются языками позднего связывания, и хотя в Ruby есть некоторая оптимизация по сравнению с PHP, если у вас возникают проблемы с производительностью, ваш код стоит искать первым. Кроме того, как однажды сказали Джоэл и Джефф на подкасте, если вы не можете идентифицировать свои пять основных болевых точек с языком, вы недостаточно знаете язык, чтобы оправдать изучение совершенно нового языка по причинам, связанным с производительностью.

2 голосов
/ 04 мая 2010

Насколько я знаю, PHP работает быстрее, чем Ruby (а Ruby потребляет больше памяти). Однако я действительно люблю писать на Ruby.

В большинстве случаев PHP достаточно быстр. Но для Facebook это было недостаточно быстро, поэтому они создали собственное решение и поделились им . На мой взгляд, для 99% веб-приложений достаточно PHP. У @macek есть хорошая точка!

1 голос
/ 05 мая 2010

Скомпилированный код, такой как C #, может быть быстрее, но кажется, что вы можете ускорить работу (в плане разработки) в Ruby. Придерживайтесь того, что вы знаете, или, если вы хотите быть более конкурентоспособным, выберите Rails или ASP.NET.

Как и в любом веб-приложении, кэширование и код на стороне клиента сделают ваше приложение более отзывчивым.

1 голос
/ 04 мая 2010

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

Скорее всего, проблема в коде, который может использовать некоторую очистку и / или оптимизацию.

Если кто-то пишет медленный код PHP, он или она, вероятно, тоже будут писать медленный код Ruby. Дело не в инструментах, а в том, как они используются.

1 голос
/ 04 мая 2010

Я использовал PHP и переключился на Ruby по другим причинам, кроме производительности.

Если это то, что вы хотите, присмотритесь к тому, что занимает время.

Существуют PHP-решения, такие как кэш опкодов xcache и библиотека для Memcached , которые помогают ускорить ваше приложение.

...