Sursa imaginii: pixabay.com

Cum să faci Python rapid ca psyco

Hei Guys, bine ai venit la următorul meu blog de Python. Dar astăzi nu voi vorbi doar despre Python rapid. Așadar, înainte de a continua, aș presupune că știți deja biți și * octeți despre piton. Dacă sunteți începători, atunci puteți căuta celelalte bloguri ale mele, puteți afla despre python, apoi reveniți la noi. acum discutăm repede subiectul Python ca Psyco.

Dacă sunteți un programator cu experiență în alt domeniu și credeți că cunoașteți elementele de bază și acum puteți citi acest blog, atunci puneți-vă o singură întrebare, știți ce este Psyco? Dacă în acest moment vă gândiți că acest „Psyco” înseamnă nebun, atunci din nou, aceste lucruri nu sunt pentru voi.

Încă ați evitat o mulțime de lucruri de bază sau pur și simplu glumiți spunându-vă că sunteți un programator cu experiență. Ai încredere în mine, voi încerca să fac acest blog cât mai ușor posibil și voi încerca să nu jignesc pe nimeni. Dar dacă nu aveți elementele de bază corect, va fi mai greu să înțelegeți acest lucru.

Lasă partea grea deoparte, te apuci chiar să crezi că chestiile rapide piton sunt mult mai grele decât orice altă programare care este absolut greșită. Deci, acum știm ce este, să mergem la ea, nu?

Ce este Psyco?

Deci, ce este Psyco? Psyco face python rapid. Confuz? Da, și eu am fost confuz când am auzit asta pentru prima dată. Python este deja rapid, atunci de ce să folosești psyco? De aceea am spus. Acest blog nu este destinat noobilor și începătorilor. Dacă ați codat în Python rulat o perioadă bună de timp, creând un număr mare de coduri și tot, atunci veți ști că python are nevoie de o codare compactă și strictă. Cu un tip adecvat de codare, îl puteți face la fel de rapid și de compact.

Dar are nevoie de timp și lucruri. Nu puteți crea coduri compacte și fără erori. Și de aici apare Psyco. Psyco este doar un modul python de extensie rapidă care grăbește execuția unui cod de rulare python. Deci, este posibil să fiți confuz chiar acum, modulul făcând un cod Python să ruleze mai repede? Da, exact asta este. Să trecem la imaginea mai mare.

Python și natura sa adevărată

Dacă ați codat în Java sau C înainte, ați putea crede că rularea python este extrem de rapidă decât ceilalți. Dar acolo greșești. În ceea ce privește performanțele brute, python este cu siguranță mai lent decât C, Java sau C #. Dar pitonul nu este cunoscut pentru că are viteză în ceea ce privește performanțele brute.

Numai începătorii sau noobii fac coduri brute. Oamenii profesioniști efectuează o codare adecvată împreună cu indentări adecvate *. Când comparați un cod compilat corespunzător și măsurați utilizarea totală a memoriei, timpul inițial de pornire, timpul de încărcare, apoi la acel moment, rularea Python este extrem de rapidă.

În plus, dacă încercați să scrieți coduri pentru crearea unui server sau chestii, Java este extrem de rapid, chiar mai rapid decât C. Acest lucru este posibil, deoarece mașina virtuală Java poate compila codul de byte fierbinte la codul mașinii. În timp ce faceți acest lucru, este posibil să profite din plin de fiecare caracteristică a procesorului.

În mod obișnuit nu este cazul cu C, cel puțin până când părăsiți mediul de laborator. Acum doar presupuneți că distribuiți o duzină de versiuni optimizate clienților dvs. - asta pur și simplu nu va funcționa.

Așadar, acum să revenim la punctul nostru principal dacă ora de pornire este o problemă (care nu este o problemă pentru o aplicație server, de exemplu) Java ar putea să nu fie cea mai bună alternativă. Poate depinde și de locul unde se află zonele dvs. de cod fierbinte, de exemplu: Dacă se află în bibliotecile native cu unele coduri rapide Python pentru a le lipi pur și simplu, veți putea să obțineți performanță ca și C cu Python rapid. Dar totuși, limbajele de scripturi vor avea tendința să fie mai lente, cel puțin de cele mai multe ori.

Cursuri recomandate

  • Curs online VB.NET
  • Training de certificare online în știința datelor
  • Curs profesional ISTQB
  • Programul Kali Linux

Psyco - Este exact cum sună

Da, ai citit așa. Acum, să revenim la subiectul nostru principal. Acum, asta definește dezvoltatorii psyco în pagina lor web: -

„Gândiți-vă la Psyco ca la un fel de compilator JIT (just-in-time), un pic ca ceea ce există pentru alte limbi, care emit cod de mașină din zbor, în loc să interpretați programul Python pas cu pas. Diferența cu abordarea tradițională a compilatoarelor JIT este că Psyco scrie mai multe versiuni ale acelorași blocuri (un bloc este un pic funcție), care sunt optimizate prin a fi specializate pe anumite tipuri de variabile (un „gen” poate însemna un tip, dar este mai general). Rezultatul este că programele dvs. Python nemodificate rulează mai rapid.

Accelerații de 2x până la 100x, de obicei 4x, cu un interpret Python nemodificat și un cod sursă nemodificat, doar un modul de extensie C încărcabil dinamic. "

Pe scurt, pentru a reformula acest lucru într-o afirmație simplă, Psyco vă va oferi mai multe performanțe Java. Veți obține timp de pornire mai lent și o utilizare mai mare a memoriei în schimbul algoritmilor mai rapide.

Acestea fiind spuse, există anumite lucruri pe care ar trebui să le amintim atunci când testăm limbi precum Java și Python. Codul în aceste limbi poate fi adesea accelerat în mod semnificativ folosind construcții mai potrivite limbii (de exemplu, înțelegeri de listă în Python rapid sau folosind char () și String Builder pentru anumite operații String în Java).

Mai mult, pentru Python rapid, utilizarea Psyco poate spori foarte mult viteza programului. Și atunci există întreaga problemă a utilizării structurilor de date adecvate și a supravegherii complexității de rulare a codului dvs.

Pentru a înțelege python psyco, trebuie să înțelegeți bine funcția eval_frame () a lui python. Ceea ce face python psyco este transforma funcția de evaluare a lui python într-o unitate de evaluare compusă, iar psyco folosește multă memorie când face acest lucru. Folosind psyco este mult mai ușor decât să-l explici.

Pentru a utiliza pur și simplu psyco, descărcați modulul psyco de la sourceforge.net și apoi păstrați acest cod la începutul primului dvs. cod:

import psyco ; psyco.jit()

from psyco.classes import *

Și apoi, puteți utiliza următoarea comandă pentru a viza comportamentul psyco mai precis:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Dacă aceste lucruri nu funcționează la început cu tine, atunci trebuie să ai răbdare. Necesită încercare și eroare. Nu vă puteți aștepta direct ca programul dvs. să funcționeze ca Usain Bolt. Spune-mi comportamentul grosolan sarcastic, dar așa funcționează.

În realitate, python psyco nu schimbă și nu modifică codul pentru a-l face mai inteligent. Cu greu, codul tău este mai specific. Face o optimizare minimă pentru a o face cât mai aproape de codul mașinii.

Deși python psyco îți face programele la fel de repede ca C, există unele limitări și contra. În continuare sunt câteva, pe care le-am enumerat mai jos:

  1. Psyco este acum depășit, neinstruit și mort. Înlocuirea este PyPy
  2. Psyco are o mulțime de probleme cu chiar pitonul 2.7. Dar funcționează mult mai bine și mai repede în v2.5
  3. Psyco nu funcționează pe mașini pe 64 de biți. Dar se poate instala o mașină virtuală cu arhitectură i386 și să o facă să funcționeze.
  4. În mod implicit, Mac OSX vine cu 64 de biți python. Unul va trebui să recompună python x86 din sursă pentru a face Psyco să funcționeze.

Chiar dacă au atât de multe probleme, oamenii încă mai folosesc Psyco în loc de PyPy. Dar, din nou, dacă mă întrebați, PyPy este o alternativă minunată la Psyco. Psyco funcționează ca un compilator Just In Time, dar PyPy are un compilator Just in time. În cazul în care Psyco folosește multă memorie, PyPy folosește mult mai puțină memorie decât Psyco. PyPy este și mai compatibil cu cadre precum Django și Twisted.

Deci, după toate acestea, indiferent de ce spun, este în folosul nostru. Persoanele cu un fond de psyco vă vor sugera întotdeauna să utilizați Psyco, în timp ce persoanele care doresc viteză ar avea nevoie de PyPy. Dar permiteți-mi să citez ceva.

„Chiar dacă vă simțiți suficient de bine cu motociclete precum R1 sau Hayabusa, uneori mergeți pe un Harley Davidson are plăcerea sa”

Funcționează în același mod cu Psyco și PyPy. Deci, până la urmă, fără prea multă atenție, ceea ce aș sugera este să le folosiți atât la început, cât și apoi să continuați cu orice vă simțiți mult mai confortabil.

Articole recomandate:

Iată câteva articole care vă vor ajuta să obțineți mai multe detalii despre psyco-ul Python Fast And Python, așa că treceți doar prin link.

  1. Linux vs Ubuntu-Differences
  2. 25 Cele mai uimitoare întrebări și răspunsuri la interviu Python
  3. Cariere în Python
  4. Python vs Node.js
  5. Ghid util pentru Kali Linux vs Ubuntu
  6. Lista compilatoarelor Python