2013-07-03 2 views
5

Я новичок в Python, и я написал несколько сценариев командной строки для выполнения некоторых вычислений. В Perl я помню использование PersistantPerl для ускорения сценариев Perl, постоянно нажимая их.Как я могу запускать скрипты Python настойчиво?

Подумайте об этом как о FastCGI, но о сценариях командной строки. PersistantPerl всегда держит копию интерпретатора, работающего потом, а затем фона, так что при каждом запуске скрипта есть такой штраф за запуск.

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

PersistenPerl

UPDATE:

Кто-то, кажется, наткнулся на ту же идею:

Reducing the Python startup time

Но это больше похоже на хак, чем законченное решение. Любые модули, которые могут это сделать?

+0

ли вы измерить "запуска штраф"? Это влияет на вашу работу? –

+0

Я никогда не слышал о такой возможности для интерпретатора Python; вероятно, влияние этого недостаточно велико, чтобы оправдать усилия. Сегодняшние ОС все равно сохраняют исполняемые файлы в памяти (если у вас недостаточно ОЗУ). – Alfe

ответ

3

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

Простейший способ добиться этого - иметь небольшой сценарий запуска, который должен иметь ваш фактический скрипт. Импортированные скрипты сохраняются как предварительно скомпилированные файлы .pyc и, следовательно, могут быть повторно запущены быстрее (по времени запуска).

+0

Звучит интересно. Я попробую. – GeneQ

+0

@GeneQ Попробуйте [этот вопрос] (http://stackoverflow.com/questions/12339671/how-to-compile-python-script-to-binary-executable). Пожалуйста, опубликуйте результаты. Я также хотел бы знать, какой из них в настоящее время является лучшим методом. Я собирался задать тот же вопрос. –

1

Если это действительно большая проблема, вы можете преобразовать свой скрипт в качестве демона и/или веб-службы, которая запускается с помощью инструмента командной строки?

См:

https://pypi.python.org/pypi/python-daemon/

Смежные вопросы