Использование Cython с Django. Имеет ли это смысл?

Вы можете использовать некоторые вариации этого:

s = 'foohellobar'
def replfunc(m):
     return m.groups()[0]+m.groups()[1].upper()+m.groups()[2]
re.sub('(foo)([a-z]+)(bar)',replfunc,s)

дает выход:

'fooHELLObar'
33
задан peterh 22 February 2017 в 09:10
поделиться

3 ответа

Можно ли оптимизировать скорость критически важного приложения, разработанного на Django, с помощью Cython

Сомнительно.

Большая часть времени отклика веб-приложения связана с элементами, отличными от HTML, которые необходимо загружать отдельно. Обычное эмпирическое правило - 8 статических файлов на HTML-страницу. (.CSS, .JS, изображения и т. Д.)

Поскольку никакой статический контент не поступает из Django, большая часть временной шкалы вашего веб-приложения - это Apache (или Nginx, или какое-либо другое серверное программное обеспечение вне Django).

Если посмотреть только на время создания HTML, вы обнаружите, что большую часть времени тратите на ожидание базы данных (даже если это SQLite в памяти, вы увидите, что база данных имеет тенденцию доминировать на временной шкале). )

Когда вы заставляете Apache и базу данных работать быстро, тогда - и только тогда - вы можете рассмотреть элементы Python.

Итог. Не тратьте время на то, чтобы Django и Python работали быстрее.

31
ответ дан 27 November 2019 в 16:27
поделиться

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

В дополнение к ответам я хочу указать на список веб-оптимизаций от веб-команды Yahoo. Это измеренные и подтвержденные достижения в областях, применимых ко многим веб-сайтам и заслуживающие изучения:

Команда Exceptional Performance определила ряд лучших практик для ускорения веб-страниц. Список включает 35 лучших практик, разделенных на 7 категорий.

5
ответ дан 27 November 2019 в 16:27
поделиться

Ну, да, но большинство вещей, которые делает веб-приложение, не выиграют от такого рода изменений, если у вас нет твердых доказательств того, что они будут. Дважды профилируйте, один раз оптимизируйте.

25
ответ дан 27 November 2019 в 16:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: