2013-07-03 21 views
5

Sono nuovo di Python e ho scritto alcuni script da riga di comando per fare alcuni calcoli. In Perl ricordo di aver usato PersistantPerl per accelerare gli script Perl eseguendoli in modo persistente.Come si eseguono gli script Python in modo persistente?

Pensa a qualcosa di simile a FastCGI ma per script da riga di comando. PersistantPerl mantiene sempre una copia dell'interprete in esecuzione quindi in background, quindi c'è una penalità di avvio ogni volta che viene eseguito lo script.

C'è uno strumento equivalente in Python o ci sono altre strategie per evitare di pagare la penalità di avvio per l'esecuzione frequente dello stesso script Python.

PersistenPerl

UPDATE:

Qualcuno sembra aver inciampato su con la stessa idea:

Reducing the Python startup time

Ma sembra più simile a un hack che una soluzione completa. Qualsiasi modulo là fuori che può fare questo?

+0

Avete misurato la "pena di avvio"? Ha un impatto sul tuo lavoro? –

+0

Non ho mai sentito parlare di una funzione simile per l'interprete Python; probabilmente l'impatto di questo non è abbastanza grande da giustificare lo sforzo. I sistemi operativi odierni mantengono comunque i binari dell'eseguibile (a meno che tu non abbia abbastanza RAM). – Alfe

risposta

3

Una cosa che può avere un impatto maggiore del mantenimento dell'interprete Python in esecuzione (se ciò è possibile anche) è assicurarsi che Python non debba compilare lo script ogni volta che viene eseguito.

Il modo più semplice per ottenere quello sarebbe avere uno script di avvio piccolo che import s il tuo script effettivo. Gli script importati vengono salvati come file precompilati .pyc e possono quindi essere rieseguiti più rapidamente (per quanto riguarda il tempo di avvio).

+0

Sembra interessante. Lo proverò. – GeneQ

+0

@GeneQ Prova [questa domanda] (http://stackoverflow.com/questions/12339671/how-to-compile-python-script-to-binary-executable) out. Si prega di inviare i risultati. Vorrei anche sapere quale è attualmente il metodo migliore. Stavo per porre la stessa domanda. –

Problemi correlati