Есть ли какой-либо прирост производительности при использовании файлов .pyc в Python? - PullRequest
7 голосов
/ 28 февраля 2012

Мы можем написать кусок кода Python и поместить его в уже скомпилированный файл ".pyc" и использовать его.Мне интересно, есть ли какой-то выигрыш с точки зрения производительности, или это просто своего рода модульный способ группировки кода.

Большое спасибо

Ответы [ 5 ]

8 голосов
/ 28 февраля 2012

Нет увеличения производительности в течение вашей программы. Это только улучшает время запуска.

Программа не запускается быстрее, когда она читается из файла ".pyc" или Файл .pyo, чем когда он читается из файла .py; единственная вещь скорость работы с файлами «.pyc» или «.pyo» - это скорость, с которой они загружены.

http://www.network -theory.co.uk / документы / pytut / CompiledPythonfiles.html

А pyo-файлы, являющиеся следующей оптимизацией, просто удаляют строки doc из вашего кода.

1 голос
/ 28 февраля 2012

Я не уверен насчет файлов .pyc (очень незначительным преимуществом является, по крайней мере, повторное создание файлов .pyc), но есть флаг '-O' для интерпретатора Python, который выдает оптимизированный байт-код (файлы .pyo).

0 голосов
/ 28 февраля 2012

На основании принятого ответа на этот вопрос: Почему основные исполняемые скрипты Python не скомпилированы в pyc-файлы, такие как модули? .

Когда модуль загружен, py-файл «компилируется» в pyc-файлы. Отметка времени записывается в файлах pyc. Это сделано не для того, чтобы сделать это бежать быстрее, но загружать быстрее

0 голосов
/ 28 февраля 2012

Да, просто потому, что при первом запуске файла .py он компилируется в файл .pyc. Таким образом, в основном вы должны добавить время компиляции. После этого всегда следует использовать файл .pyc.

0 голосов
/ 28 февраля 2012

Вы получите долю секунды, которая потребовалась среде исполнения Python для анализа и компиляции источника в байт-код, что происходит только при первом запуске / импорте.

Вы потеряете переносимость.

См. здесь .

Программа не запускается быстрее, когда она читается из файла ".pyc" или Файл .pyo, чем когда он читается из файла .py; единственная вещь скорость работы с файлами «.pyc» или «.pyo» - это скорость, с которой они загружены.

...