Piton hiter - Kako narediti Python Fast in python psyco?

Kazalo:

Anonim

Vir slike: pixabay.com

Kako narediti Python hiter kot Psyco

Hej, fantje, dobrodošli na mojem naslednjem blogu Pythona. Ampak danes ne bom hitro govoril samo o Pythonu. Preden nadaljujem, bi predpostavil, da bitov in * bajtov o pythonu že poznate. Če ste začetnik, potem lahko iščete druge bloge, se naučite o pythonu in se vrnite k nam. zdaj razpravljamo o temi Python hitro kot Psyco.

Če ste izkušeni programer na drugem področju in mislite, da poznate osnove in zdaj lahko preberete ta blog, potem si postavite samo eno vprašanje, ali veste, kaj je Psyco? Če v tem trenutku mislite, da ta "Psyco" pomeni nora, potem spet to ni za vas.

Še vedno se izogibate številnim osnovnim stvarem ali se samo norčujete, ko govorite, da ste izkušeni programer. Zaupaj mi, skušal bom čim bolj olajšati ta blog in poskušal nikogar ne užaliti. Če pa osnov nimate prav, boste to le težje razumeli.

Če pustite trdi del ob strani, si začnete misliti, da so hitri elementi Pythona veliko težji kot pri katerem koli drugem programiranju, ki je popolnoma napačno. Torej, zdaj vemo, kaj je, da se lotimo tega?

Kaj je zdravilo Psyco?

Torej, kaj je Psyco? Psyco hitro naredi python. Zmeden? Da, tudi jaz sem bil zmeden, ko sem to slišal prvič. Python je že hiter, zakaj potem uporabljati psyco? Zato sem si rekel. Ta blog ni za nobece in začetnike. Če ste v python runu kodirali dober čas in ustvarili veliko število kod in vse, potem boste vedeli, da python fast potrebuje kompaktno in strogo kodiranje. S pravilno vrsto kodiranja lahko naredite hitro in kompaktno.

A potrebuje čas in stvari. Ne morete ustvariti kompaktnih kod in napak, ki niso na voljo. In tu nastane Psyco. Psyco je samo hitri razširitveni modul python, ki pospeši izvajanje kode za izvajanje pythona. Torej ste morda zdaj zmedeni in modul, s katerim Python koda teče hitreje? Ja, točno tako je. Pojdimo na širšo sliko.

Python in njegova prava narava

Če ste že prej kodirali Java ali C, boste morda mislili, da je delovanje pythona izjemno hitro kot drugi. Toda tu se motiš. Glede na surove zmogljivosti je python vsekakor počasnejši od C, Java ali C #. Toda python ni znan po hitrosti v surovem delovanju.

Samo začetniki ali noobi izvajajo surovo kodiranje. Profesionalni ljudje pravilno kodirajo skupaj z ustreznimi vdolbinami *. Ko primerjate pravilno sestavljeno kodo in izmerite skupno porabo pomnilnika, začetni čas zagona, čas nalaganja, nato pa je v tem trenutku izvedba pythona izjemno hitra.

Poleg tega, če poskušate pisati kode za ustvarjanje strežnika ali drugih stvari, je Java izjemno hitra, celo hitrejša kot C. To je mogoče, ker bi lahko navidezni stroj Java sestavil vročo bajt kodo v strojno kodo. Pri tem lahko v celoti izkoristi vsako funkcijo procesorja.

To običajno ni C, dokler ne zapustite laboratorijskega okolja. Zdaj samo domnevajte, da vašim strankam razdelite ducat optimiziranih zgradb - to preprosto ne bo delovalo.

Torej, vrnimo se k naši glavni stvari, če je čas zagona (kar na primer ni težava za strežniško aplikacijo) Java morda ni najboljša alternativa. Morda je odvisno tudi od tega, kje so na primer področja vroče kode: Če se nahajajo v matičnih knjižnicah z nekaj hitre kode Python, da jih preprosto zlepite, boste lahko dobili C kot zmogljivost tudi s Python-om. Toda kljub temu bodo jeziki za pisanje besedil ponavadi počasnejši - vsaj večino časa.

Priporočeni tečaji

  • Spletni tečaj VB.NET
  • Spletno usposabljanje za spletno certificiranje iz podatkovnih znanosti
  • Strokovni tečaj ISTQB
  • Kali Linux Program

Psyco - kako točno zveni

Ja, prav ste prebrali. Zdaj se vrnimo k naši glavni temi. Zdaj to definirajo razvijalci psiho na svoji spletni strani: -

»Psyco si omislite kot nekakšnega pravočasnega prevajalnika (JIT), kar je malo podobno tistemu, kar obstaja za druge jezike, ki oddajajo strojno kodo med letenjem, namesto da korak za korakom razlagate program Python. Razlika s tradicionalnim pristopom do prevajalnikov JIT je v tem, da Psyco napiše več različic istih blokov (blok je del funkcije), ki so optimizirani tako, da so specializirani za nekatere vrste spremenljivk ("vrsta" lahko pomeni tip, vendar je bolj splošno). Rezultat tega je, da vaši nespremenjeni programi Python delujejo hitreje.

2x do 100x pospešitve hitrosti, običajno 4x, z nespremenjenim tolmačem Python in nespremenjeno izvorno kodo, samo z dinamično naložljivim modulom za razširitev C. "

Skratka, če to preoblikujemo v preprost stavek, vam bo Psyco zagotovil večjo zmogljivost, podobno Javi. V zameno za hitrejše algoritme boste dobili počasnejše začetne čase in večjo porabo pomnilnika.

Če to povem, se moramo med testiranjem jezikov, kot sta Java in Python, spomniti nekaterih stvari. Kodo v teh jezikih lahko pogosto znatno pospešimo z uporabo konstrukcij, ki so primernejše za jezik (npr. Razumevanje seznama v Python-u hitro, ali z uporabo char () in String Builderja za nekatere String operacije na Javi).

Še več, za Python hitro lahko uporaba Psyco močno poveča hitrost programa. Potem je tu celo vprašanje uporabe ustreznih podatkovnih struktur in spremljanja zahtevnosti izvajanja kode.

Če želite razumeti python psyco, je treba dobro razumeti funkcijo pythona eval_frame (). To, kar počne python psyco, pretvori pythonovo funkcijo eval_frame v sestavljeno enoto za ocenjevanje in psico pri tem uporablja veliko pomnilnika. Uporaba psyco je veliko lažja kot razlaga.

Če želite preprosto uporabiti funkcijo psyco, naložite modul psico z izvornega spletnega mesta.net in obdržite to kodo na začetku svoje prve kode:

import psyco ; psyco.jit()

from psyco.classes import *

Nato lahko naslednji ukaz natančneje usmerite v vedenje psihe:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Če te stvari sprva ne delujejo z vami, potem morate biti potrpežljivi. Zahteva poskus in napako. Ne morete neposredno pričakovati, da se bo vaš program izvajal kot Usain Bolt. Prihranite mi sarkastično nesramno vedenje, ampak tako deluje.

V resnici python psyco ne spreminja in ne spreminja vaše kode, da bi bila pametnejša. Koda komaj profilira vašo kodo, da bi bila bolj natančna. Naredi minimalno optimizacijo, da se čim bolj približa strojni kodi.

Čeprav programi python psyco naredijo vaše programe tako hitro kot C, so nekatere omejitve pri njih. Sledi nekaj, ki sem jih naštel spodaj:

  1. Psyco je zdaj zastarjen, brez vzdrževanja in mrtev. Zamenjava je PyPy
  2. Psyco ima veliko težav s celo pythonom 2.7. Toda v v2.5 deluje veliko bolje in hitreje
  3. Psyco ne deluje na 64-bitnih strojih. Lahko pa namesti virtualni stroj z arhitekturo i386 in kljub temu deluje.
  4. Mac OSX privzeto ima 64-bitni python. Da bo Psyco deloval, bo treba ponovno prevesti python x86 iz vira.

Čeprav ima toliko težav, ljudje še vedno uporabljajo Psyco namesto PyPy-ja. Toda, če vprašate mene, je PyPy odlična alternativa Psycu. Psyco deluje kot prevajalnik Just In Time, toda PyPy ima svoj prevajalnik Just in Time. Kadar Psyco porabi veliko pomnilnika, PyPy porabi veliko manj pomnilnika kot Psyco. PyPy je še bolj združljiv z okviri, kot sta Django in Twisted.

Torej navsezadnje ne glede na to, kaj rečem, je v lastno uporabo. Ljudje z ozadjem Psyco vam bodo vedno predlagali uporabo Psyca, medtem ko bi ljudje, ki želijo hitrost, potrebovali PyPy. Naj pa nekaj citiram.

"Čeprav se z motocikli, kot sta R1 ali Hayabusa, počutiš dovolj dobro, ima včasih vožnja Harley Davidson svoj užitek."

Enako deluje tudi s Psyco in PyPy. Torej, na koncu, brez večjih obolenj, priporočam, da v začetku uporabite oboje, nato pa nadaljujte s tistim, kar se vam zdi udobno.

Priporočeni članki:

Tu je nekaj člankov, ki vam bodo pomagali do podrobnosti o Python Fast And python psyco, zato pojdite po povezavi.

  1. Linux vs Ubuntu-Razlike
  2. 25 najbolj neverjetnih vprašanj in odgovorov na Python Intervju
  3. Kariera v Pythonu
  4. Python proti Node.js
  5. Koristni vodnik za Kali Linux proti Ubuntu
  6. Seznam prevajalnikov Python