Ускорение Python
Вместо того, чтобы просто optimizer перейти на C, я бы предложил:
Сделайте optimisation так, чтобы ваш код считался. Делайте speed больше с меньшим количеством performance строк:
- Измените алгоритм на более быстрый. Во многих случаях не нужно изобретать, чтобы быть быстрее.
- Используйте примитивы Python, которые написаны на C. Некоторые вещи заставят интерпретатор отправляться туда, где некоторые этого не делают. Последнее предпочтительнее
- Остерегайтесь кода, который сначала создает большую структуру данных, а затем завершает ее. Подумайте о разнице между диапазоном и xrange. Вообще часто стоит задуматься об использовании памяти программой. Использование генераторов иногда может снизить использование памяти O(n) до O(1).
- Python вообще не оптимизирует. Поднимите инвариантный код из циклов, устраните общие подвыражения, где это возможно, в узких циклах.
- Если что-то дорогое, то предварительно вычислите или запомните это. Например, можно компилировать регулярные выражения.
- Нужно посчитать числа? Возможно, вы захотите проверить
numpy
. - Многие программы на Python работают медленно, потому что они связаны дисковым вводом-выводом или доступом к базе данных. Убедитесь, что у вас есть что-то стоящее, пока вы ждете поступления данных, а не просто блокируете. Оружие может быть чем-то вроде схемы
Twisted
. - Обратите внимание, что многие важные библиотеки обработки данных имеют C-версии, будь то XML, JSON или что-то еще. Часто они значительно быстрее интерпретатора Python.
Если все вышеперечисленное pythonic не работает для профилированного optimization и измеренного кода, тогда optimizing начните думать о пути C-rewrite.
python
optimization
performance
2021-12-06T04:07:28+00:00
2022-10-22T02:53:44+00:00
Olexandr
Вопросы с похожей тематикой, как у вопроса:
Ускорение Python
Эффективный способ взять минимальное / максимальное n значений и индексов из матрицы с помощью NumPy
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.