Я хотел протестировать python27 на appengine, поэтому я перенес свое приложение с python25.Производительность снижается более чем в 2 раза за каждый запрос!Затем я вернулся к python25 и производительность снова, как и прежде.Вот изображение:
(миллисекунды / запрос) (обработчик cgi python 27, затем python25)
Мое приложение использует Werkzeug , Jinja2 , а memcache используется довольно много.Какие причины могут вызвать такое резкое снижение производительности?Или это только потому, что python2.7 на appengine все еще находится в бета-версии?
Некоторые подробности о приложении:
Это довольно простой интернет-магазин.Есть несколько отложенных задач с генерацией PDF, однако они не сильно влияют на общий график, потому что главная страница получает наибольшее количество просмотров.Почти все memcached.Загрузка страницы с Python 2.5 занимает до ~ 0,8 сек с пустым кешем.Некэшированные страницы загружаются долго, в основном из-за большого количества запросов в БД.Загрузка кэшированных страниц за 60 ~ 100 мс.Среднее время загрузки ~ 150 мс.С питоном 2.7 производительность ужасна.Некэшированные страницы загружаются за 2+ секунды.Кэшированные страницы загружаются за 200+ мс.
К сожалению, у меня нет данных профилирования, и я не могу сказать, что именно замедляет работу в python 2.7.
Мои числа для загрузки страницывремя, получаемое со страницы в реальном времени, которая обслуживает ~ 10 запросов / сек, и 1 резидентный экземпляр python25 легко справляется с этой нагрузкой.
Я также тестировал python 2.7 с wsgi и threadsafe:yes
, но производительность немного улучшилась по сравнениюв Python 2.7 и CGI.