Zdroj obrázka: pixabay.com

Ako si vyrobiť Python rýchlo ako Psyco

Ahoj chlapci, vitajte na mojom ďalšom blogu v Pythone. Ale dnes nebudem hovoriť len o Pythone rýchlo. Takže predtým, ako budem pokračovať, predpokladal by som, že už viete bity a * bajty o pythone. Ak ste začiatočník, môžete vyhľadať moje ďalšie blogy, dozvedieť sa viac o pythone a potom sa k nám vrátiť. teraz diskutujeme rýchlo o téme Python ako Psyco.

Ak ste skúseným programátorom v inej oblasti a myslíte si, že poznáte základy a teraz si môžete tento blog prečítať, potom si položte jednu otázku: viete, čo je Psyco? Ak si teraz myslíte, že toto „Psyco“ znamená šialené, potom to znova nie je pre vás.

Stále ste sa vyhli mnohým základným veciam alebo si len robíte srandu tým, že hovoríte, že ste skúsený programátor. Ver mi, pokúsim sa urobiť tento blog čo najjednoduchším a pokúsiť sa nikoho neuraziť. Ale ak nemáte základné práva, bude pre vás ťažšie to pochopiť.

Nechajte tú tvrdú časť bokom, dokonca si začnete myslieť, že rýchle veci Pythonu sú oveľa ťažšie ako akékoľvek iné programovanie, ktoré je úplne zlé. Takže teraz vieme, čo je čo, poďme na to, však?

Čo je Psyco?

Čo je to Psyco? Psyco robí python rýchlym. Zmätený? Áno, tiež som bol zmätený, keď som to prvýkrát počul. Python je už rýchly, tak prečo používať psyco? Preto som povedal. Tento blog nie je určený pre začiatočníkov a začiatočníkov. Ak ste kódovali v pythone behom dobrého času, vytvorili ste veľké množstvo kódov a všetko, potom budete vedieť, že python rýchlo potrebuje kompaktné a prísne kódovanie. Pri správnom type kódovania môžete urobiť rýchle a kompaktné kódovanie.

Potrebuje však čas a tak. Z modrej nemôžete vytvárať kompaktné a bezchybné kódy. A práve tu vzniká Psyco. Psyco je iba python modul s rýchlym rozšírením, ktorý urýchľuje vykonávanie pythonovho kódu. Možno vás teraz môže zmiasť modul, ktorý urýchľuje beh Pythonovho kódu? Áno, presne tak to je. Poďme k väčšiemu obrazu.

Python a jeho pravá povaha

Ak ste predtým kódovali v jazyku Java alebo C, možno si myslíte, že beh pythonu je extrémne rýchly ako pri ostatných. Ale tam sa mýlite. Pokiaľ ide o prvotný výkon, python je určite pomalší ako C, Java alebo C #. Ale python nie je známy tým, že má rýchlosť v surovom výkone.

Syrové kódovanie robia iba začiatočníci alebo noobi. Profesionálni ľudia robia správne kódovanie a správne odsadenia *. Ak porovnáte správne skompilovaný kód a zmeráte celkové využitie pamäte, počiatočný čas spustenia, čas načítania a potom v tom okamihu, spustenie pythonu je veľmi rýchle.

Okrem toho, ak sa pokúšate písať kódy na vytvorenie servera alebo takého obsahu, Java je extrémne rýchla, dokonca rýchlejšia ako C. Je to možné, pretože Java Virtual Machine môže zostaviť horúci bajtový kód do strojového kódu. Pritom môže plne využiť všetky funkcie CPU.

Toto zvyčajne nie je prípad C, aspoň kým neopustíte laboratórne prostredie. Teraz len predpokladajme, že distribuujete tucet optimalizovaných stavieb svojim klientom - to jednoducho nebude fungovať.

Teraz sa teda vráťme k nášmu hlavnému bodu, ak je problém s časom spustenia (čo nie je problém napríklad pre serverové aplikácie). Java nemusí byť najlepšou alternatívou. Môže to tiež závisieť napríklad od toho, kde sú vaše oblasti horúcich kódov: Ak sa nachádzajú v natívnych knižniciach s nejakým rýchlym kódom Python, ktorý ich jednoducho prilepí, budete môcť rýchlo získať výkon podobný C. Napriek tomu budú mať skriptovacie jazyky tendenciu byť pomalšie - prinajmenšom väčšinu času.

Odporúčané kurzy

  • Online kurz VB.NET
  • Online certifikačné školenie v oblasti dátovej vedy
  • Profesionálny kurz ISTQB
  • Program Kali Linux

Psyco - presne ako to znie

Áno, čítate to správne. Vráťme sa teraz k našej hlavnej téme. Teraz definujú vývojári psyco na svojej webovej stránke: -

„Mysli na Psyco ako na nejaký kompilátor just-in-time (JIT), trochu ako to, čo existuje pre iné jazyky, ktoré vysielajú strojový kód za behu namiesto toho, aby krok za krokom interpretoval váš program Python. Rozdiel oproti tradičnému prístupu k kompilátorom JIT spočíva v tom, že Psyco píše niekoľko verzií rovnakých blokov (blok je trochu funkciou), ktoré sú optimalizované špecializáciou na niektoré druhy premenných („druh“ môže znamenať typ, ale je všeobecnejšia). Výsledkom je, že vaše neupravené programy Python bežia rýchlejšie.

2x až 100x zrýchlenie, zvyčajne 4x, s nemodifikovaným Pythonovým tlmočníkom a nemodifikovaným zdrojovým kódom, iba dynamicky načítateľný rozširujúci modul C. “

Stručne povedané, aby sme to preformulovali jednoduchým tvrdením, Psyco vám poskytne viac výkonu podobného Java. Výmenou za rýchlejšie algoritmy získate pomalší čas spustenia a vyššie využitie pamäte.

Napriek tomu existujú určité veci, ktoré by ste si mali pamätať pri testovaní jazykov ako Java a Python. Kód v týchto jazykoch sa často môže výrazne urýchliť použitím konštrukcií, ktoré sú pre daný jazyk vhodnejšie (napr. Porozumenie zoznamu v jazyku Python rýchlo, alebo pomocou char () a String Builder pre určité operácie typu String v Java).

Navyše, pre Python rýchlo, použitie Psyco môže výrazne zvýšiť rýchlosť programu. A potom je tu celý problém použitia vhodných dátových štruktúr a sledovania zložitosti kódu za behu programu.

Aby sme pochopili python psyco, musíme dobre rozumieť funkcii eval_frame () pythonu. To, čo robí python psyco, je prevádzanie funkcie eval_frame pythonu na zloženú vyhodnocovaciu jednotku a psyco pri tom využíva veľa pamäte. Používanie psyco je oveľa jednoduchšie, ako vysvetliť.

Ak chcete jednoducho používať psyco, stiahnite si psyco modul zo stránky sourceforge.net a potom si ponechajte tento kód na začiatku svojho prvého kódu:

import psyco ; psyco.jit()

from psyco.classes import *

A potom môžete použiť nasledujúci príkaz na presnejšie zacielenie správania psyco:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Ak tieto veci s vami najskôr nespolupracujú, musíte byť trpezliví. Vyžaduje pokus a omyl. Nemôžete priamo očakávať, že sa váš program spustí ako Usain Bolt. Ušetrite mi sarkastické hrubé správanie, ale takto to funguje.

Python psyco v skutočnosti nemení ani neupravuje váš kód, aby bol inteligentnejší. Ťažko profiluje konkrétnejší kód. Vykonáva minimálnu optimalizáciu, aby sa čo najviac priblížil strojovému kódu.

Aj keď python psyco robí vaše programy takými rýchlymi ako C, existujú s nimi určité obmedzenia a nevýhody. Nižšie uvádzame niektoré z nich:

  1. Psyco je teraz zastarané, neudržiavané a mŕtve. Náhrada je PyPy
  2. Psyco má veľa problémov aj s pythonom 2.7. Vo verzii 2.5 však funguje omnoho lepšie a rýchlejšie
  3. Psyco nefunguje na 64-bitových počítačoch. Je však možné nainštalovať virtuálny stroj s architektúrou i386 a dosiahnuť, aby fungoval.
  4. Mac OSX je štandardne dodávaný s python 64-bit. Aby bolo možné Psyco fungovať, bude potrebné prekompilovať python x86 zo zdroja.

Aj keď majú toľko problémov, ľudia stále používajú Psyco namiesto PyPy. Ale opäť, ak sa ma pýtate, PyPy je úžasná alternatíva k Psyco. Psyco funguje ako kompilátor Just In Time, ale PyPy má vlastný kompilátor Just in Time. Tam, kde Psyco využíva veľa pamäte, používa PyPy oveľa menej pamäte ako Psyco. PyPy je ešte kompatibilnejší s rámcami ako Django a Twisted.

Takže po tom všetkom, bez ohľadu na to, čo hovorím, je to pre naše vlastné použitie. Ľudia so zázemím Psyco vám vždy navrhnú používať Psyco, zatiaľ čo ľudia, ktorí chcú rýchlosť, by potrebovali PyPy. Ale dovoľte mi niečo citovať.

"Aj keď sa cítite dosť dobre s motocyklami ako R1 alebo Hayabusa, niekedy má jazda na Harley Davidson svoje vlastné potešenie."

Rovnakým spôsobom to funguje aj s Psyco a PyPy. Nakoniec, bez toho, aby to bolo príliš veľa, by som navrhol použiť na začiatku a potom pokračovať podľa toho, čo sa cítite príjemne.

Odporúčané články:

Tu je niekoľko článkov, ktoré vám pomôžu získať viac podrobností o Python Fast a Python psyco, takže stačí prejsť na odkaz.

  1. Linux verzus Ubuntu-Differences
  2. 25 najúžasnejších otázok a odpovedí na Python
  3. Kariéra v Pythone
  4. Python vs Node.js
  5. Užitočný sprievodca Kali Linux vs Ubuntu
  6. Zoznam Pythonových kompilátorov

Kategórie: