Ускорение 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

2022-10-22T02:53:44+00:00
Вопросы с похожей тематикой, как у вопроса:

Ускорение Python