бенчмаркинг PHP против пилонов - PullRequest
2 голосов
/ 23 марта 2009

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

  • PHP 5.1.6 с APC, используя шаблон smarty, подключающийся к базе данных MySQL
  • Python 2.6.1, использующий Pylons с шаблоном mako, соединяющим ту же базу данных MySQL

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

Я собираюсь запустить его на запасном сервере, который почти не работает, 2G оперативной памяти и 4 ядра.

Любые предложения о том, как я должен или не должен их сравнить? Я планирую использовать ab, чтобы выполнить реальный тест.

Относящиеся

Ответы [ 2 ]

3 голосов
/ 23 марта 2009

Если вы не используете ORM в PHP, вам не следует использовать SQLAlchemy ORM или язык SQL-Expression, а использовать необработанные команды SQL. Если вы используете APC, убедитесь, что у Python есть права на запись в папку, в которой находится ваше приложение, или что файлы .py предварительно скомпилированы.

Также, если вы используете умный кеш, рассмотрите возможность включения кеша Mako ради справедливости.

Однако есть одна загвоздка: адаптер Python MySQL невероятно плох. Для соединений с базой данных вы, вероятно, заметите либо низкую производительность (если SQLAlchemy выполняет декодирование unicode для себя), либо утечка памяти (если это делает адаптер MySQL).

Обе проблемы, которые вы не имеете с PHP, потому что нет поддержки Unicode. Так что для полной справедливости вам придется отключить Юникод в соединении с базой данных (что, однако, невероятно плохая идея).

Итак: кажется, что нет справедливого способа сравнить PHP и Pylons:)

2 голосов
/ 23 марта 2009
  1. ваша версия PHP устарела, PHP уже некоторое время находится в области 5.2.x, и, несмотря на то, что нет значительных улучшений, есть достаточно изменений, которые я бы сказал, чтобы протестировать что-либо более старое, это несправедливое сравнение.

  2. PHP 5.3 находится на грани окончательного завершения, и вы должны включить это в свои тесты, так как есть значительные улучшения PHP 5.x, а также последняя версия 5.x, если вы действительно хотите Раздел 6: PHP 6 также находится в альфа / бета-версии, и это тоже капитальный ремонт.

  3. Сравнение совершенно разных языков может быть интересным, но не забывайте, что вы сравниваете яблоки с апельсинами, и самое большое узкое место в любом приложении 2/3 / N-Tier ожидает ввода-вывода. Таким образом, самым большим фактором является скорость вашей базы данных, сравнивать PHP с Python VS ASP.Net исключительно по скорости бессмысленно, поскольку все три из них будут выполняться менее чем за 1 секунду, но вы можете легко подождать 2-3 секунды на запрос к базе данных, в зависимости от на вашем оборудовании и что вы делаете.

  4. Если вы беспокоитесь о том, что быстрее, вы выбираете абсолютно неверный подход к выбору платформы. Есть более важные вопросы, такие как (не по порядку):

    а. Как легко я могу найти опытных разработчиков на этой платформе

    б. Сколько стоят эти опытные разработчики

    с. Сколько ROI предлагает язык

    d. Насколько богат язык возможностей

...