Джанго с PyPy - PullRequest
       17

Джанго с PyPy

15 голосов
/ 20 декабря 2010

Есть ли причины использовать Django с PyPy? Я читаю PyPy повышает производительность.

Ответы [ 3 ]

22 голосов
/ 20 декабря 2010

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

10 голосов
/ 20 декабря 2010

Зависит.

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

Базы данных с точки зрения совместимости представляют собой небольшую проблему, потому что работает только sqlite, и он работает медленно (хотя есть ветка, чтобы это исправить). Люди также сообщали, что pg8000 работает, например, с sqlalchemy, но у меня нет опыта из первых рук.

Ура, fijal

4 голосов
/ 14 февраля 2013

Я провел некоторые эксперименты с PyPy + Django. Есть два основных вопроса:

  • Большинство адаптеров баз данных и других сторонних модулей не могут быть скомпилированы с PyPy (даже когда вики говорят, что это возможно).

  • Один сервер, который, на мой взгляд, мог бы выиграть от компиляции JIT, потому что он выполнял необычные вычисления в некоторых запросах, занимал все больше памяти, возможно, потому, что JIT хранил трассы, которые оказались уникальными для каждого запроса, поэтому никогда не использовались повторно

Теоретически PyPy может быть выигрышным, если ваш сервер выполняет интересные вычисления, использует модули на чистом python и имеет большое количество объектов в памяти (поскольку PyPy в некоторых случаях может уменьшить объем используемой памяти для каждого объекта). В противном случае более высокие требования к памяти для JIT будут препятствием, поскольку он уменьшает возможности кэширования в памяти и может потребовать дополнительных серверов для запуска достаточного количества серверных процессов.

...