Izvor slike: pixabay.com

Kako napraviti Python brzim kao Psyco

Hej momci, dobrodošli na moj sljedeći blog Pythona. Ali danas neću brzo govoriti samo o Pythonu. Prije nego što nastavim, pretpostavio bih da već znate bitove i * bajtove o pythonu. Ako ste početnik, onda možete potražiti moje ostale blogove, naučiti o python-u, a zatim se obratite nama. sada raspravljamo o temi Python brzo kao Psyco.

Ako ste iskusan programer na drugom polju i mislite da znate osnove i sada možete čitati ovaj blog, onda se samo zapitajte jedno pitanje, znate li što je Psyco? Ako u ovom trenutku mislite da ovaj "Psyco" znači lud, onda opet, ovo nije za vas.

I dalje ste izbjegavali puno osnovnih stvari ili se samo šalite govoreći da ste iskusni programer. Vjerujte mi, pokušat ću ovaj blog učiniti što jednostavnijim i nastojat ću nikoga ne uvrijediti. Ali ako nemate osnove u redu, to će vam biti još teže shvatiti.

Ako ostavite tvrdi dio po strani, čak počinjete misliti da su brzi materijali s python-om mnogo teži nego bilo koji drugi programi koji su apsolutno pogrešni. Dakle, sada znamo što je to, idemo na to, zar ne?

Što je Psyco?

Dakle, što je Psyco? Psyco brzi python. Zbunjeni? Da, i ja sam bio zbunjen kad sam to prvi put čuo. Python je već brz, zašto onda koristiti psyco? Zato sam rekao. Ovaj blog nije za početnike i početnike. Ako ste kodirali u python run tijekom dosta dugog vremena, stvarajući velik broj kodova i sve ostalo, tada ćete znati da python-u za brzo treba kompaktno i strogo kodiranje. S pravilnom vrstom kodiranja možete je brzo i kompaktno učiniti.

Ali treba vremena i stvari. Ne možete stvoriti kompaktne kodove bez grešaka. I tu nastaje Psyco. Psyco je samo Python-ov modul za brzo proširenje koji ubrzava izvršenje koda za pokretanje pythona. Dakle, možda ste zbunjeni upravo sada, modul koji čini Python kod brže radi? Da, upravo je to tako. Idemo na širu sliku.

Python i njegova istinska priroda

Ako ste prije kodirali Java ili C, možda mislite da je trčanje pythona izuzetno brzo od ostalih. Ali tu griješite. Što se tiče sirovih performansi, python je definitivno sporiji od C, Java ili C #. Ali python nije poznat po brzini u sirovoj izvedbi.

Samo početnici ili noobovi rade sirovo kodiranje. Profesionalni ljudi pravilno kodiranje zajedno s pravilnim urezima *. Kada usporedite pravilno sastavljeni kôd i izmjerite ukupnu potrošnju memorije, početno vrijeme pokretanja, vrijeme učitavanja, tada je u tom trenutku pokretanje pytona vrlo brzo.

Osim toga, ako pokušavate napisati kodove za izradu poslužitelja ili stvari, Java je izuzetno brza, čak i brža od C. To je moguće jer bi Java Virtual Machine mogao sastaviti vrući bajt kod na strojni kod. Dok to radi, u potpunosti će iskoristiti sve značajke CPU-a.

To obično nije slučaj sa C-om, barem dok ne napustite laboratorijsko okruženje. Sada samo pretpostavite, distribuiranje desetaka optimiziranih gradnji svojim klijentima - to jednostavno neće uspjeti.

Dakle, sada se vratimo na našu glavnu točku ako je vrijeme pokretanja (što na primjer nije problem za poslužiteljsku aplikaciju) Java možda nije najbolja alternativa. Može ovisiti i o tome gdje su, na primjer, područja s vrućim kodom: Ako se nalaze u matičnim bibliotekama s nekim Python-ovim brzim kodom da ih jednostavno zalijepite, moći ćete dobiti C poput performansi i sa Python-om. Ali ipak, jezici skripta ipak će biti sporiji - barem veći dio vremena.

Preporučeni tečajevi

  • VB.NET Online tečaj
  • Obuka za internetsko certificiranje iz znanosti podataka
  • Stručni ISTQB tečaj
  • Kali Linux program

Psyco - je li točno kako to zvuči

Da, dobro ste pročitali. Vratimo se našoj glavnoj temi. Ovo je ono što psihi programeri definiraju na svojoj web stranici: -

„Mislite na Psyco kao na nekakav pravodobni prevodilac (JIT), pomalo nalik onome što postoji za ostale jezike, koji emitiraju strojni kod u hodu, umjesto da korak po korak interpretirate vaš program Python. Razlika u tradicionalnom pristupu JIT-ovim kompajlerima je u tome što Psyco piše nekoliko verzija istih blokova (blok je pomalo funkcija), koji su optimizirani specijaliziranjem za neke vrste varijabli ("vrsta" može značiti tip, ali je općenitije). Rezultat toga je da vam nemodificirani Python programi rade brže.

2x do 100x ubrzavanja, obično 4x, s nemodificiranim interpretatorom Python-om i nemodificiranim izvornim kodom, samo dinamički C modul za proširenje. "

Ukratko, ako to preformulirate u jednostavnu izjavu, Psyco će vam pružiti više performansi sličnih Java-u. U zamjenu za brže algoritme dobit ćete sporije vrijeme pokretanja i veću potrošnju memorije.

Rekavši to, postoje neke stvari koje bi trebalo zapamtiti prilikom testiranja jezika kao što su Java i Python. Kôd na tim jezicima često se može znatno ubrzati korištenjem konstrukcija prikladnijih jeziku (npr. Poimanje popisa u Python-u brzo ili korištenjem char () i String Builder-a za određene String operacije u Javi).

Štoviše, za Python brzo, korištenje Psyco može uvelike povećati brzinu programa. A tu je i čitav problem korištenja odgovarajućih struktura podataka i praćenja složenosti izvođenja koda.

Da bismo razumjeli python psyco, potrebno je dobro razumijevanje pythonove funkcije eval_frame (). Ono što python psyco radi jest pretvara pythonovu funkciju eval_frame u jedinicu za složenu procjenu i psico koristi puno memorije dok to radi. Koristiti psyco daleko je lakše nego objasniti ga.

Da biste jednostavno koristili psyco, preuzmite psico modul sa izvorforge.net i zadržite ovaj kod na početku svog prvog koda:

import psyco ; psyco.jit()

from psyco.classes import *

A zatim, pomoću sljedeće naredbe možete preciznije ciljati psiho ponašanje:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Ako vam ove stvari isprva ne rade, onda morate biti strpljivi. Zahtijeva pokušaj i pogreške. Ne možete izravno očekivati ​​da će se vaš program izvoditi kao Usain Bolt. Poštedite me sarkastično bezobraznog ponašanja, ali tako to djeluje.

U stvarnosti, python psyco ne mijenja ili ne mijenja vaš kôd da bi bio pametniji. Teško da vaš kod bude precizniji. Čini minimalnu optimizaciju kako bi bio što bliži strojnom kodu.

Iako Python psyco čini vaše programe brzim poput C, postoje ograničenja i nedostaci istih. Evo nekoliko koje sam dolje nabrojao:

  1. Psyco je sada zastario, nije održavan i mrtav. Zamjena je PyPy
  2. Psyco ima puno problema s čak pythonom 2.7. No, djeluje daleko bolje i brže u v2.5
  3. Psyco ne radi na 64-bitnim strojevima. Ali može se instalirati virtualni stroj s i386 arhitekturom i učiniti ga da djeluje.
  4. Mac OSX prema zadanom dolazi s 64-bitnim python-om. Trebat će ponovno prevesti python x86 iz izvora kako bi Psyco mogao raditi.

Iako ima toliko problema, ljudi i dalje koriste Psyco umjesto PyPy-a. Ali opet, ako mene pitate, PyPy je sjajna alternativa Psycu. Psyco djeluje poput prevoditelja Just In Time, ali PyPy ima vlastiti prevodilac Just in Time. Tamo gdje Psyco koristi puno memorije, PyPy koristi puno manje memorije nego Psyco. PyPy je još kompatibilniji s okvirima poput Django i Twisted.

Dakle, nakon svega toga bez obzira što kažem, to je za našu vlastitu korist. Osobe s podrijetlom Psyco uvijek će vam predložiti da koristite Psyco, dok će osobe koje žele brzinu trebati PyPy. Ali, dopustite mi da citiram nešto.

"Iako se dovoljno dobro osjećate motociklima poput R1 ili Hayabusa, ponekad vožnja Harley Davidsonom ima svoje zadovoljstvo"

Na isti način djeluje i s Psyco i PyPy. Dakle, na kraju, bez puno divljenja, ono što bih predložio je da u startu koristite oboje, a zatim nastavite s onim što smatrate ugodnijim.

Preporučeni članci:

Evo nekoliko članaka koji će vam pomoći da saznate više detalja o Python Fast and Python psyco-u pa samo prođite vezu.

  1. Linux vs Ubuntu-razlike
  2. 25 najneverovatnijih pitanja i odgovora na Python Intervju
  3. Karijere u Pythonu
  4. Python vs Node.js
  5. Korisni vodič za Kali Linux i Ubuntu
  6. Popis sastavljača Python-a

Kategorija: