Fonte immagine: pixabay.com

Come rendere Python veloce come Psyco

Ehi ragazzi, benvenuti nel mio prossimo blog di Python. Ma oggi non parlerò solo di Python velocemente. Quindi, prima di procedere, suppongo che tu conosca già bit e * byte su Python. Se sei un principiante, puoi cercare i miei altri blog, conoscere Python e tornare da noi. ora stiamo discutendo l'argomento Python velocemente come Psyco.

Se sei un programmatore esperto in un altro campo e pensi di conoscere le basi e ora puoi leggere questo blog, quindi porsi solo una domanda, sai cos'è Psyco? Se a questo punto stai pensando che questo "Psyco" significhi pazzo, allora di nuovo, questa roba non fa per te.

Hai ancora evitato molte cose di base o ti stai solo prendendo in giro dicendo che sei un programmatore esperto. Fidati di me, cercherò di rendere questo blog il più semplice possibile e cercherò di non offendere nessuno. Ma se non hai le basi giuste, sarà solo più difficile per te capirlo.

Lascia da parte la parte difficile, fai persino iniziare a pensare che le cose veloci di Python siano molto più difficili di qualsiasi altra programmazione che sia assolutamente sbagliata. Quindi ora sappiamo cosa c'è, andiamo avanti, vero?

Che cos'è Psyco?

Allora, cos'è Psyco? Psyco rende il pitone veloce. Confuso? Sì, anch'io ero confuso quando l'ho sentito per la prima volta. Python è già veloce, quindi perché usare psyco? Ecco perché ho detto. Questo blog non è adatto a principianti e principianti. Se hai eseguito la codifica in Python per un buon periodo di tempo, creando un gran numero di codici e tutto il resto, allora saprai che Python ha bisogno di una codifica compatta e rigorosa. Con il giusto tipo di codifica, puoi renderlo veloce e compatto.

Ma ha bisogno di tempo e cose. Non è possibile creare codici compatti e senza errori di punto in bianco. Ed è qui che nasce Psyco. Psyco è solo un modulo di estensione rapida Python che accelera l'esecuzione di un codice di esecuzione Python. Quindi, potresti essere confuso in questo momento, il modulo rende un codice Python più veloce? Sì, è esattamente così. Andiamo al quadro più ampio.

Python e la sua vera natura

Se hai già codificato Java o C in precedenza, potresti pensare che l'esecuzione di Python sia estremamente veloce rispetto agli altri. Ma è lì che ti sbagli. In termini di prestazioni non elaborate, python è decisamente più lento di C, Java o C #. Ma Python non è noto per avere velocità nelle prestazioni grezze.

Solo i principianti o i noob fanno codifica grezza. Le persone professionali eseguono una codifica corretta insieme a rientri appropriati *. Quando si confronta un codice correttamente compilato e si misura l'utilizzo della memoria totale, il tempo di avvio iniziale, il tempo di caricamento, quindi a quel punto nel tempo, l'esecuzione di Python è estremamente veloce.

Inoltre, se si sta tentando di scrivere codici per la creazione di un server o altro, Java è estremamente veloce, anche più veloce di C. Ciò è possibile poiché la Java Virtual Machine potrebbe compilare hot-code-code in codice macchina. Nel fare ciò, può sfruttare appieno ogni singola funzionalità della CPU.

Questo in genere non è il caso di C, almeno fino a quando non esci dall'ambiente di laboratorio. Ora supponi, distribuendo una dozzina di build ottimizzate ai tuoi clienti, che semplicemente non funzioneranno.

Quindi, torniamo al nostro punto principale se il tempo di avvio è un problema (che non è un problema per un'applicazione server per esempio) Java potrebbe non essere la migliore alternativa. Può anche dipendere da dove si trovano le tue aree di hot code, ad esempio: se si trovano all'interno delle librerie native con del codice veloce Python per incollarle semplicemente insieme, sarai anche in grado di ottenere prestazioni simili a C con Python velocemente. Tuttavia, i linguaggi di scripting tenderanno ad essere più lenti, almeno per la maggior parte del tempo.

Corsi consigliati

  • Corso online VB.NET
  • Formazione online sulla certificazione dei dati
  • Corso ISTQB professionale
  • Programma Kali Linux

Psyco - Esattamente come suona

Sì, hai letto bene. Ora torniamo al nostro argomento principale. Ora, questo è ciò che definiscono gli sviluppatori psyco nella loro pagina web: -

“Pensa a Psyco come una sorta di compilatore just-in-time (JIT), un po 'come quello che esiste per altre lingue, che emette il codice macchina al volo invece di interpretare il tuo programma Python passo dopo passo. La differenza con l'approccio tradizionale ai compilatori JIT è che Psyco scrive diverse versioni degli stessi blocchi (un blocco è un po 'una funzione), che sono ottimizzati essendo specializzati in alcuni tipi di variabili (un "tipo" può significare un tipo, ma è più generale). Il risultato è che i tuoi programmi Python non modificati vengono eseguiti più velocemente.

Accelerazioni da 2x a 100x, in genere 4x, con un interprete Python non modificato e un codice sorgente non modificato, solo un modulo di estensione C caricabile dinamicamente. "

In breve, per riformularlo in una semplice dichiarazione, Psyco ti darà più prestazioni simili a Java. Otterrai tempi di avvio più lenti e un maggiore utilizzo della memoria in cambio di algoritmi più veloci.

Detto questo, ci sono alcune cose da ricordare quando si testano linguaggi come Java e Python. Il codice in questi linguaggi può spesso essere accelerato in modo significativo utilizzando costruzioni più adatte al linguaggio (ad esempio, la comprensione dell'elenco in Python fast o l'utilizzo di char () e String Builder per alcune operazioni su String in Java).

Inoltre, per Python veloce, l'utilizzo di Psyco può aumentare notevolmente la velocità del programma. E poi c'è l'intero problema di usare strutture dati appropriate e tenere d'occhio la complessità di runtime del tuo codice.

Per capire python psyco, è necessario avere una buona comprensione della funzione eval_frame () di python. Ciò che fa python psyco è la conversione della funzione eval_frame di python in un'unità di valutazione composta e psyco usa molta memoria per farlo. L'uso di psyco è molto più semplice che spiegarlo.

Per usare semplicemente psyco, scarica il modulo psyco da sourceforge.net e quindi mantieni questo codice all'inizio del tuo primo codice:

import psyco ; psyco.jit()

from psyco.classes import *

E poi, puoi usare il seguente comando per indirizzare il comportamento di psyco in modo più preciso:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Se queste cose all'inizio non funzionano con te, allora devi essere paziente. Richiede tentativi ed errori. Non puoi aspettarti che il tuo programma funzioni esattamente come Usain Bolt. Risparmiami il comportamento sarcastico maleducato, ma è così che funziona.

In realtà, python psyco non cambia o modifica il codice per renderlo più intelligente. Difficilmente profila il tuo codice per essere più specifico. Fa un'ottimizzazione minima per renderlo il più vicino possibile al codice macchina.

Sebbene python psyco renda i tuoi programmi più veloci di C, ci sono alcuni limiti e svantaggi. Di seguito sono riportati alcuni, che ho elencato di seguito:

  1. Psyco è ora deprecato, non mantenuto e morto. La sostituzione è PyPy
  2. Psyco ha molti problemi anche con Python 2.7. Ma funziona molto meglio e più velocemente in v2.5
  3. Psyco non funziona su macchine a 64 bit. Ma si può installare una macchina virtuale con architettura i386 e farlo funzionare comunque.
  4. Mac OSX per impostazione predefinita viene fornito con Python a 64 bit. Sarà necessario ricompilare Python x86 dal sorgente per far funzionare Psyco.

Anche se hanno così tanti problemi, le persone usano ancora Psyco invece di PyPy. Ma ancora una volta, se me lo chiedi, PyPy è una fantastica alternativa a Psyco. Psyco funziona come un compilatore Just In Time, ma PyPy ha un compilatore Just in time a parte. Laddove Psyco utilizza molta memoria, PyPy utilizza molta meno memoria di Psyco. PyPy è ancora più compatibile con framework come Django e Twisted.

Quindi, dopo tutto questo, non importa quello che dico, è a nostro uso. Le persone con un background di Psyco ti suggeriranno sempre di usare Psyco, mentre le persone che desiderano velocità dovrebbero aver bisogno di PyPy. Vorrei citare qualcosa.

"Anche se ti senti abbastanza bene con motociclette come la R1 o Hayabusa, a volte guidare una Harley Davidson ha il suo piacere"

Funziona allo stesso modo con Psyco e PyPy. Quindi, alla fine, senza troppi indugi, ciò che suggerirei è di utilizzare entrambi all'inizio, e quindi continuare con quello che ti senti molto a tuo agio.

Articoli consigliati:

Ecco alcuni articoli che ti aiuteranno a ottenere maggiori dettagli su Python Fast And python psyco, quindi passa attraverso il link.

  1. Linux vs Ubuntu-Differenze
  2. 25 domande e risposte più interessanti su Python
  3. Carriere in Python
  4. Python vs Node.js
  5. Guida utile a Kali Linux vs Ubuntu
  6. Elenco dei compilatori Python

Categoria: