Billedkilde: pixabay.com

Sådan gør du Python hurtig som Psyco

Hej fyre, velkommen til min næste blog af Python. Men i dag vil jeg ikke tale om bare Python hurtigt. Så inden jeg fortsætter, antager jeg, at du allerede kender bits og * byte om python. Hvis du er nybegynder, kan du søge efter mine andre blogs, lære om python og derefter vende tilbage til os. nu diskuterer vi emnet Python hurtigt som Psyco.

Hvis du er en erfaren programmør på et andet felt, og du tror, ​​at du kender det grundlæggende, og nu kan du læse denne blog, så spørg bare dig selv et spørgsmål, ved du hvad der er Psyco? Hvis du på dette tidspunkt tænker, at denne "Psyco" betyder vanvittigt, så er denne ting ikke for dig igen.

Du har stadig undgået en masse basale ting, eller du tager bare dig selv ved at fortælle, at du er en erfaren programmør. Tro mig, jeg vil prøve at gøre denne blog så let som muligt og vil prøve ikke at fornærme nogen. Men hvis du ikke har det grundlæggende rigtigt, vil det bare være sværere for dig at forstå dette.

Lad den hårde del være til side, så begynder du endda at tro, at python-hurtige ting er meget sværere end enhver anden programmering, der er helt forkert. Så nu ved vi hvad der er, lad os gå videre til det, skal vi?

Hvad er Psyco?

Så hvad er Psyco? Psyco gør python hurtigt. Forvirret? Ja, også jeg var forvirret, da jeg hørte det for første gang. Python er allerede hurtig, hvorfor bruge psyco? Derfor sagde jeg. Denne blog er ikke til noobs og begyndere. Hvis du har kodet i python-kørsel i en god mængde tid og skabt et stort antal koder og alt det, vil du vide, at python hurtigt har brug for kompakt og streng kodning. Med den rette type kodning kan du gøre den hurtig såvel som kompakt.

Men det har brug for tid og ting. Du kan ikke oprette kompakte og fejlfri koder ud af det blå. Og det er her Psyco kommer til. Psyco er bare et Python-hurtigt udvidelsesmodul, der fremskynder udførelsen af ​​en Python-kørselskode. Så du kan blive forvirret lige nu, hvor modulet får en Python-kode til at køre hurtigere? Ja, det er netop det, det er. Lad os komme til det større billede.

Python og dets sande natur

Hvis du har kodet i Java eller C før, tror du måske, at python-kørsel er ekstremt hurtig end de andre. Men det er her, du har forkert. Med hensyn til rå ydeevne er python bestemt langsommere end C, Java eller C #. Men python er ikke kendt for at have fart i rå ydelse.

Kun begyndere eller noobs laver rå kodning. Professionelle mennesker udfører korrekt kodning sammen med korrekt indrykk *. Når du sammenligner en korrekt kompileret kode og måler den samlede hukommelsesforbrug, den første starttid, indlæsningstid, og på dette tidspunkt er python-kørslen ekstremt hurtig.

Hvis du forsøger at skrive koder til oprettelse af en server eller ting, er Java desuden ekstremt hurtigt, endnu hurtigere end C. Dette er muligt, da Java Virtual Machine muligvis kompilerer hot byte-kode til maskinkode. Mens du gør dette, kan det drage fuld fordel af hver eneste funktion på CPU'en.

Dette er typisk ikke tilfældet med C, i det mindste indtil du forlader dit laboratoriemiljø. Nu er det bare at antage at distribuere et dusin af optimerede builds til dine klienter - det vil simpelthen ikke fungere.

Så lad os nu vende tilbage til vores vigtigste punkt, hvis opstartstid er et problem (hvilket ikke er et problem for en serverapplikation for eksempel) Java er muligvis ikke det bedste alternativ. Det kan også afhænge af, hvor dine hotkodeområder er, for eksempel: Hvis de befinder sig i de oprindelige biblioteker med en eller anden Python-hurtigkode for blot at lime dem sammen, vil du også kunne få C-lignende ydelse med Python hurtigt også. Men stadig vil script-sprog have en tendens til at være langsommere - i det mindste det meste af tiden.

Anbefalede kurser

  • VB.NET Online-kursus
  • Online certificeringstræning i datavidenskab
  • Professionelt ISTQB-kursus
  • Kali Linux-program

Psyco - Er nøjagtigt hvordan det lyder

Ja, du læser det rigtigt. Lad os nu vende tilbage til vores hovedemne. Dette er, hvad psyco-udviklerne definerer på deres webside: -

”Tænk på Psyco som en slags just-in-time (JIT) compiler, lidt som hvad der findes på andre sprog, der udsender maskinkode på farten i stedet for at fortolke dit Python-program trin for trin. Forskellen med den traditionelle tilgang til JIT-compilere er, at Psyco skriver flere versioner af de samme blokke (en blok er en smule af en funktion), som optimeres ved at være specialiseret til nogle slags variabler (en "slags" kan betyde en type, men det er mere generelt). Resultatet er, at dine umodificerede Python-programmer kører hurtigere.

2x til 100x speed-ups, typisk 4x, med en umodificeret Python-tolk og umodificeret kildekode, bare et dynamisk belastbart C-udvidelsesmodul. ”

Kort sagt, for at omformulere dette i en simpel erklæring, vil Psyco give dig mere Java-lignende ydelse. Du får langsommere starttider og højere hukommelsesforbrug i bytte for hurtigere algoritmer.

Når det er sagt, er der visse ting, man skal huske, når man tester sprog som Java og Python. Koden på disse sprog kan ofte fremskyndes markant ved at bruge konstruktioner, der er mere egnede til sproget (f.eks. Listeforståelser i Python hurtigt, eller ved hjælp af char () og String Builder til visse strengoperationer i Java).

Desuden kan brug af Psyco for Python hurtigt øge programmets hastighed meget. Og så er der hele spørgsmålet om at bruge passende datastrukturer og holde øje med runkens kompleksitet i din kode.

For at forstå python-psyco skal man have en god forståelse af pythons eval_frame () -funktion. Hvad python psyco gør er konverterer pythons eval_frame funktion til en sammensat evaluering enhed, og psyco bruger masser af hukommelse, når du gør dette. Det er langt lettere at bruge psyco end at forklare det.

For blot at bruge psyco skal du downloade psyco-modulet fra sourceforge.net og derefter opbevare denne kode i starten af ​​din allerførste kode:

import psyco ; psyco.jit()

from psyco.classes import *

Og så kan du bruge følgende kommando til at målrette psycos adfærd mere præcist:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Hvis disse ting ikke fungerer med dig i starten, skal du være tålmodig. Det kræver prøve og fejl. Du kan ikke direkte forvente, at dit program kører som Usain Bolt. Spare mig den sarkastiske uhøflige opførsel, men det er sådan det fungerer.

I virkeligheden ændrer eller ændrer python psyco ikke din kode for at gøre den smartere. Det profilerer næppe din kode for at være mere specifik. Det gør minimal optimering for at gøre det så tæt på maskinkoden som muligt.

Selvom python psyco gør dine programmer lige så hurtigt som C, er der nogle begrænsninger og ulemper ved dem. Følgende er nogle, som jeg har nævnt nedenfor:

  1. Psyco er nu afskrevet, uovervåget og død. Udskiftning er PyPy
  2. Psyco har mange problemer med endda python 2.7. Men det fungerer langt bedre og hurtigere i v2.5
  3. Psyco fungerer ikke på 64-bit maskiner. Men man kan installere en virtuel maskine med i386-arkitektur og få den til at fungere.
  4. Mac OSX leveres som standard med Python 64-bit. Man bliver nødt til at rekompilere python x86 fra kilden for at få Psyco til at fungere.

Selvom folk har så mange problemer, bruger folk stadig Psyco i stedet for PyPy. Men igen, hvis du spørger mig, er PyPy et fantastisk alternativ til Psyco. Psyco fungerer som en Just In Time-kompilator, men PyPy har en Just in Time-kompilator af sin egen. Hvor Psyco bruger masser af hukommelse, bruger PyPy meget mindre hukommelse end Psyco. PyPy er endnu mere kompatibel med rammer som Django og Twisted.

Så efter alt dette uanset hvad jeg siger, er det til vores eget brug. Mennesker med baggrund i Psyco vil altid anbefale dig at bruge Psyco, mens folk, der ønsker hastighed, har brug for PyPy. Men lad mig citere noget.

"Selvom du har det godt nok med motorcykler som R1 eller Hayabusa, har det somme tider sin egen fornøjelse at køre på Harley Davidson"

Det fungerer på samme måde med Psyco og PyPy. Så til sidst, uden meget hårdt, hvad jeg vil foreslå er at bruge begge i starten, og fortsæt derefter med det, du føler dig meget behageligt.

Anbefalede artikler:

Her er nogle artikler, der hjælper dig med at få flere detaljer om Python Fast And python psyco, så bare gå gennem linket.

  1. Linux vs Ubuntu-forskelle
  2. 25 mest fantastiske Python-interviewspørgsmål og svar
  3. Karrierer i Python
  4. Python vs Node.js
  5. Nyttig vejledning til Kali Linux vs Ubuntu
  6. Liste over Python-kompilatorer

Kategori: