Python raskt - Hvordan lage Python Fast And python psyco?

Innholdsfortegnelse:

Anonim

Bildekilde: pixabay.com

Hvordan lage Python raskt som Psyco

Hei folkens, velkommen til min neste blogg av Python. Men i dag vil jeg ikke snakke om bare Python fort. Så før jeg fortsetter, vil jeg anta at du allerede vet biter og * byte om python. Hvis du er nybegynner, kan du søke etter mine andre blogger, lære om python og deretter komme tilbake til oss. nå diskuterer vi temaet Python raskt som Psyco.

Hvis du er en erfaren programmerer på et annet felt, og du tror at du kjenner det grunnleggende og nå kan du lese denne bloggen, er det bare å stille deg ett spørsmål, vet du hva som er Psyco? Hvis du på dette tidspunktet tenker at denne "Psyco" betyr gal, så er dette ikke noe for deg.

Du har fremdeles unngått mange grunnleggende ting, eller bare tuller med deg selv ved å fortelle at du er en erfaren programmerer. Stol på meg, jeg vil prøve å gjøre denne bloggen så enkel som mulig og vil prøve å ikke fornærme noen. Men hvis du ikke har det grunnleggende riktig, vil det bare være vanskeligere for deg å forstå dette.

La den harde delen til side, du begynner til og med å tenke at python-raske ting er mye vanskeligere enn noen annen programmering som er helt feil. Så nå vet vi hva, hva skal vi gjøre?

Hva er Psyco?

Så, hva er Psyco? Psyco gjør python raskt. Forvirret? Ja, også jeg var forvirret da jeg hørte det for første gang. Python er allerede rask, hvorfor bruke psyco? Derfor sa jeg. Denne bloggen er ikke for noobs og nybegynnere. Hvis du har kodet i python-kjøring i god tid, og skapt et stort antall koder og alt, vil du vite at python fort trenger kompakt og streng koding. Med riktig type koding kan du gjøre det raskt og kompakt.

Men det trenger tid og sånt. Du kan ikke lage kompakte og feilfrie koder ut av det blå. Og det er der Psyco oppstår. Psyco er bare en Python-hurtigutvidelsesmodul som fremskynder utførelsen av en python-løpskode. Så du kan være forvirret akkurat nå, modul som gjør at en Python-kode kjører raskere? Ja, akkurat det er det det er. La oss komme til det større bildet.

Python og dets sanne natur

Hvis du har kodet i Java eller C før, kan du tro at python-kjøringen er ekstremt rask enn de andre. Men det er der du tar feil. Når det gjelder rå ytelse, er python definitivt tregere enn C, Java eller C #. Men python er ikke kjent for å ha fart i rå ytelse.

Bare nybegynnere eller noobs gjør rå koding. Profesjonelle mennesker gjør riktig koding sammen med riktige innrykk *. Når du sammenligner en riktig kompilert kode og måler total minnebruk, første oppstartstid, lastetid, og på dette tidspunktet er python-kjøringen ekstremt rask.

Dessuten, hvis du prøver å skrive koder for å lage en server eller ting, er Java ekstremt raskt, enda raskere enn C. Dette er mulig ettersom Java Virtual Machine kan kompilere hot byte-kode til maskinkode. Mens du gjør dette, kan det dra full nytte av hver eneste funksjon i CPU.

Dette er vanligvis ikke tilfelle med C, i det minste før du forlater laboratoriemiljøet. Nå er det bare å anta å dele ut et dusin av optimaliserte bygg til kundene dine - det vil ganske enkelt ikke fungere.

Så la oss nå komme tilbake til hovedpoenget vårt hvis oppstartstid er et problem (som ikke er et problem for en serverapplikasjon for eksempel) Java er kanskje ikke det beste alternativet. Det kan også avhenge av hvor hotkodeområdene dine er, for eksempel: Hvis de befinner seg i de innfødte bibliotekene med noen Python-hurtigkoder for å bare lime dem sammen, vil du også kunne få C-lignende ytelse med Python raskt. Men likevel vil skriptspråk ofte være tregere - i det minste mesteparten av tiden.

Anbefalte kurs

  • VB.NET Online-kurs
  • Online Certification Training in Data Science
  • Profesjonelt ISTQB-kurs
  • Kali Linux-program

Psyco - Er nøyaktig hvordan det høres ut

Ja, du har lest det riktig. La oss komme tilbake til hovedemnet vårt. Dette er hva psyco-utviklerne definerer på deres webside:

Tenk på Psyco som en slags just-in-time (JIT) kompilator, litt som det som finnes for andre språk, som avgir maskinkode på farten i stedet for å tolke Python-programmet trinn for trinn. Forskjellen med den tradisjonelle tilnærmingen til JIT-kompilatorer er at Psyco skriver flere versjoner av de samme blokkene (en blokk er litt av en funksjon), som er optimalisert ved å være spesialisert til noen slags variabler (en "type" kan bety en type, men det er mer generelt). Resultatet er at dine umodifiserte Python-programmer kjører raskere.

2x til 100x speed-ups, typisk 4x, med en umodifisert Python-tolk og umodifisert kildekode, bare en dynamisk lastbar C-utvidelsesmodul. ”

Kort sagt, for å omformulere dette i en enkel uttalelse, vil Psyco gi deg mer Java-lignende ytelse. Du vil få saktere starttider og høyere minnebruk i bytte mot raskere algoritmer.

Når det er sagt, er det visse ting man bør huske på når man tester språk som Java og Python. Koden på disse språkene kan ofte fremskyndes betydelig ved å bruke konstruksjoner som er mer tilpasset språket (f.eks. Listeforståelser i Python raskt, eller ved å bruke char () og String Builder for visse strengoperasjoner i Java).

For Python fort kan bruk av Psyco øke hastigheten på programmet kraftig. Og så er det hele problemet med å bruke passende datastrukturer og holde et øye med runtime-kompleksiteten til koden din.

For å forstå python psyco, må man ha en god forståelse av pythons eval_frame () -funksjon. Hva python psyco gjør er å konvertere pythons eval_frame-funksjon til en sammensatt evalueringsenhet, og psyco bruker mye minne når du gjør dette. Det er langt enklere å bruke psyco enn å forklare det.

For å bare bruke psyco, last ned psyco-modulen fra sourceforge.net og deretter beholde denne koden i begynnelsen av den aller første koden:

import psyco ; psyco.jit()

from psyco.classes import *

Og så kan du bruke følgende kommando for å målrette psycos oppførsel mer presist:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Hvis disse tingene ikke fungerer med deg med det første, må du være tålmodig. Det krever prøving og feiling. Du kan ikke forvente at programmet ditt kjører som Usain Bolt. Skånsom for meg den sarkastiske uhøflige oppførselen, men det er slik det fungerer.

I virkeligheten endrer eller endrer ikke python psyco koden din for å gjøre den smartere. Det profilerer knapt koden din for å være mer spesifikk. Det gjør minimal optimalisering for å gjøre den så nær maskinkoden som mulig.

Selv om python psyco gjør programmene dine så raskt som C, er det noen begrensninger og ulemper med dem. Følgende er noen som jeg har listet opp nedenfor:

  1. Psyco er nå avskrevet, uopprettholdt og død. Erstatning er PyPy
  2. Psyco har mange problemer med til og med python 2.7. Men det fungerer langt bedre og raskere i v2.5
  3. Psyco fungerer ikke på 64-biters maskiner. Men man kan installere en virtuell maskin med i386-arkitektur og få den til å fungere.
  4. Mac OSX leveres som standard med python 64-bit. Man må kompilere python x86 fra kilden for å få Psyco til å fungere.

Selv om de har så mange problemer, bruker folk fremdeles Psyco i stedet for PyPy. Men igjen, hvis du spør meg, er PyPy et fantastisk alternativ til Psyco. Psyco fungerer som en Just In Time-kompilator, men PyPy har en Just in Time-kompilator av sin egen. Der Psyco bruker mye minne, bruker PyPy mye mindre minne enn Psyco. PyPy er enda mer kompatibel med rammer som Django og Twisted.

Så etter alt dette uansett hva jeg sier, så er det til vårt eget bruk. Personer med bakgrunn i Psyco vil alltid foreslå at du bruker Psyco, mens folk som ønsker hastighet vil trenge PyPy. Men la meg sitere noe.

"Selv om du føler deg bra nok med motorsykler som R1 eller Hayabusa, har noen ganger å ri på Harley Davidson sin egen glede"

Det fungerer på samme måte med Psyco og PyPy. Så til slutt, uten mye anstrengelse, det jeg vil foreslå er å bruke begge deler i starten, og deretter fortsette med det du føler deg mye komfortabel.

Anbefalte artikler:

Her er noen artikler som vil hjelpe deg å få mer detaljert informasjon om Python Fast And python psyco, så bare gå gjennom lenken.

  1. Linux vs Ubuntu-forskjeller
  2. 25 mest fantastiske Python-intervjuspørsmål og svar
  3. Karrierer i Python
  4. Python vs Node.js
  5. Nyttig guide til Kali Linux vs Ubuntu
  6. Liste over Python-kompilatorer