2013-05-02 1 views

ответ

31
  1. Поддержка библиотек. Не все библиотеки совместимы с PyPy.

    Ваш лучший выбор - попробуйте запустить pypy manage.py test и посмотреть, не сломается ли он. Затем вы знаете, какие зависимости необходимо привести в соответствие.

    http://reinout.vanrees.org/weblog/2011/06/06/django-and-pypy.html

  2. WebServers

    Вы не можете использовать PyPy с Apache. Вам нужно использовать веб-сервер pure-python + nginx. ВЫ МОЖЕТЕ получить это working on uwsgi.

+16

Я использую pypy + gunicorn + django + nginx, и он работает как шарм. –

8

В PyPy wiki перечислены Django как совместимые, но не очень подробно рассказывается о том, сколько из Django было протестировано. Я не знаю о каком-либо крупном развертывании Django, которое запускает PyPy вместо CPython. Лучший вопрос - почему вы хотите переключиться на PyPy для приложения Django, тем более, что Django был широко протестирован и развернут с помощью CPython.

PyPy подходит для задач, которые являются интенсивными с точки зрения вычислительной мощности. Веб-приложений обычно нет. Тест-тесты Django, на которых они основывают свои показатели производительности, по существу являются эталоном рендеринга шаблонов, который является задачей с интенсивным процессором. Это не является репрезентативным для большинства веб-приложений, где шея бутылки имеет тенденцию быть вводом/выводом. Таким образом, PyPy может не ускорить ваш сайт столько, сколько эти графики заставляют вас поверить.

+48

«Веб-серверы ограничены IO, не беспокойтесь о медленных языках». Похоже, что ошибка очевидна. Я знаю, что 50% времени, проведенного на моем основном веб-сайте базы данных, - это ВРЕМЯ ОБРАБОТКИ ПИТОНА. Шаблоны нуждаются в рендеринге, запросы требуют глубокой печати. Ответственные разработчики должны искать улучшения производительности везде, а не только на уровне БД. – Thomas

+7

«Это не является репрезентативным для * большинства * веб-приложений, где шея бутылки имеет тенденцию к вводу/выводу». Как всегда вам нужно профилировать, чтобы выяснить, где ваши узкие места. Нигде это не означает, что вам не нужно беспокоиться о написании оптимизированного кода. Ответственные разработчики оптимизируют критические пути своего приложения. Переход на экспериментальную среду исполнения Python на основе эталонного теста шаблона вряд ли отвечает! – CadentOrange

+4

Я провел несколько тестов cpython2 vs pypy. Тесты производительности выполняются намного быстрее с помощью pypy. С другой стороны, django-страницы с db-запросами, где с cpython работает намного быстрее. – francescortiz