Bildkälla: pixabay.com

Hur man gör Python snabbt som Psyco

Hej killar, välkommen till min nästa blogg av Python. Men idag talar jag inte bara om Python snabbt. Så innan jag fortsätter, antar jag att du redan vet bitar och * byte om python. Om du är nybörjare kan du söka efter mina andra bloggar, lära sig om python och sedan komma tillbaka till oss. nu diskuterar vi ämnet Python snabbt som Psyco.

Om du är en erfaren programmerare inom ett annat område, och du tror att du känner till grunderna och nu kan du läsa den här bloggen, fråga bara dig själv en fråga, vet du vad som är Psyco? Om du i det här laget tänker att den här "Psyco" betyder galen, så är det här inte för dig.

Du har fortfarande undvikit mycket grundläggande grejer eller bara skojar dig själv genom att berätta att du är en erfaren programmerare. Lita på mig, jag kommer att försöka göra denna blogg så enkel som möjligt och kommer att försöka att inte kränka någon. Men om du inte har grunderna rätt, blir det bara svårare för dig att förstå detta.

Lämna den hårda delen åt sidan, du börjar till och med tänka att pythonsnabba saker är mycket svårare än någon annan programmering som är helt fel. Så nu vet vi vad som är, låt oss gå vidare med det, ska vi?

Vad är Psyco?

Så vad är Psyco? Psyco gör python snabbt. Förvirrad? Ja, jag blev också förvirrad när jag hörde det för första gången. Python är redan snabbt, varför använda psyco? Det är därför jag sa. Den här bloggen är inte för noobs och nybörjare. Om du har kodat i python kör under en god tid och skapat ett stort antal koder och allt, kommer du att veta att python snabbt behöver kompakt och strikt kodning. Med rätt kodningstyp kan du göra den snabbt och kompakt.

Men det behöver tid och grejer. Du kan inte skapa kompakta och bugfria koder ur det blå. Och det är där Psyco kommer till. Psyco är bara en Python-snabbförlängningsmodul som påskyndar körningen av en Python-körkod. Så du kanske är förvirrad just nu, modul som gör att en Python-kod körs snabbare? Ja, exakt är det vad det är. Låt oss komma till den större bilden.

Python och dess sanna natur

Om du har kodat i Java eller C tidigare, kanske du tror att pythonkörningen är extremt snabb än de andra. Men det är där du har fel. När det gäller råprestanda är python definitivt långsammare än C, Java eller C #. Men python är inte känt för att ha snabba resultat.

Endast nybörjare eller noobs gör rå kodning. Professionella människor gör korrekt kodning tillsammans med korrekt intryck *. När du jämför en korrekt kompilerad kod och mäter total minnesanvändning, initial starttid, laddningstid, då vid den tidpunkten är pythonkörningen extremt snabb.

Dessutom, om du försöker skriva koder för att skapa en server eller grejer, är Java extremt snabbt, ännu snabbare än C. Detta är möjligt eftersom Java Virtual Machine kan kompilera het byte-kod till maskinkod. När du gör detta kan det dra full nytta av alla funktioner i CPU: n.

Detta är vanligtvis inte fallet med C, åtminstone tills du lämnar din laboratoriemiljö. Antag nu, distribuera ett dussin optimerade bygg till dina kunder - det kommer helt enkelt inte att fungera.

Så låt oss nu komma tillbaka till vår huvudsakliga punkt om starttid är ett problem (vilket inte är ett problem för en serverapplikation till exempel) Java kanske inte är det bästa alternativet. Det kan också bero på var dina heta kodområden är, till exempel: Om de finns inom de ursprungliga biblioteken med någon Python-snabbkod för att helt enkelt limma dem ihop, kommer du också att kunna få C-liknande prestanda med Python snabbt också. Men ändå tenderar skriptspråk att bli långsammare - åtminstone för det mesta.

Rekommenderade kurser

  • VB.NET online-kurs
  • Online-certifieringsträning i datavetenskap
  • Professionell ISTQB-kurs
  • Kali Linux-program

Psyco - Är exakt hur det låter

Ja, du läste rätt. Låt oss nu återgå till vårt huvudämne. Det här är vad psyco-utvecklarna definierar på sin webbsida: -

”Tänk på Psyco som en slags just-in-time (JIT) kompilator, lite som vad som finns för andra språk, som avger maskinkod i farten istället för att tolka ditt Python-program steg för steg. Skillnaden med det traditionella tillvägagångssättet för JIT-kompilatorer är att Psyco skriver flera versioner av samma block (ett block är lite av en funktion), som optimeras genom att vara specialiserade på vissa typer av variabler (en "typ" kan betyda en typ, men det är mer generellt). Resultatet är att dina omodifierade Python-program körs snabbare.

2x till 100x speed-ups, vanligtvis 4x, med en omodifierad Python-tolk och omodifierad källkod, bara en dynamiskt laddbar C-förlängningsmodul. ”

Kort sagt, för att omformulera detta i ett enkelt uttalande, kommer Psyco att ge dig mer Java-liknande prestanda. Du får långsammare starttider och högre minnesanvändning i utbyte mot snabbare algoritmer.

Med det sagt är det vissa saker man bör komma ihåg när man testar språk som Java och Python. Koden på dessa språk kan ofta snabbas upp betydligt genom att använda konstruktioner som är mer anpassade för språket (t.ex. listförståelser i Python snabbt, eller med char () och String Builder för vissa strängoperationer i Java).

För Python snabbt kan användning av Psyco dessutom kraftigt öka programmets hastighet. Och så är det hela frågan om att använda lämpliga datastrukturer och hålla ett öga på din kods körningskomplexitet.

För att förstå python-psyco måste man ha en god förståelse för funktionen av evaluering av python (). Vad python psyco gör är att konvertera pythons eval_frame-funktion till en sammansatt utvärderingsenhet, och psyco använder mycket minne när du gör detta. Att använda psyco är mycket lättare än att förklara det.

För att helt enkelt använda psyco, ladda ner psyco-modulen från sourceforge.net och sedan behålla den här koden i början av din allra första kod:

import psyco ; psyco.jit()

from psyco.classes import *

Och sedan kan du använda följande kommando för att rikta in psycos beteende mer exakt:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Om det här inte fungerar med dig först, måste du vara tålamod. Det kräver test och fel. Du kan inte direkt förvänta dig att ditt program ska köras som Usain Bolt. Skona mig det sarkastiska oförskämda beteendet, men det är så det fungerar.

I verkligheten ändrar eller modifierar inte python psyco din kod för att göra den smartare. Det profilerar knappast din kod för att vara mer specifik. Det gör minimal optimering för att göra det så nära maskinkoden som möjligt.

Även om python psyco gör dina program lika snabbt som C, finns det vissa begränsningar och nackdelar med dem. Följande är några som jag har listat nedan:

  1. Psyco är nu avskrivet, ohållen och död. Ersättningen är PyPy
  2. Psyco har många problem med även Python 2.7. Men det fungerar mycket bättre och snabbare i v2.5
  3. Psyco fungerar inte på 64-bitars maskiner. Men man kan installera en virtuell maskin med i386-arkitektur och få den att fungera.
  4. Mac OSX levereras som standard med Python 64-bitars. Man kommer att behöva kompilera python x86 från källan för att få Psyco att fungera.

Trots att de har så många problem använder folk fortfarande Psyco istället för PyPy. Men igen, om du frågar mig, är PyPy ett fantastiskt alternativ till Psyco. Psyco fungerar som en Just In Time-kompilator, men PyPy har en Just in Time-kompilator. Där Psyco använder mycket minne använder PyPy mycket mindre minne än Psyco. PyPy är ännu mer kompatibel med ramverk som Django och Twisted.

Så efter allt detta oavsett vad jag säger, så är det till vårt eget bruk. Personer med bakgrund av Psyco kommer alltid att föreslå att du använder Psyco, medan människor som vill ha hastighet skulle behöva PyPy. Men låt mig citera något.

"Även om du känner dig tillräckligt bra med motorcyklar som R1 eller Hayabusa, har det ibland sitt nöje att rida på Harley Davidson"

Det fungerar på samma sätt med Psyco och PyPy. Så i slutändan, utan mycket att göra, vad jag skulle föreslå är att använda båda i början, och sedan fortsätta med vad du känner dig mycket bekväm.

Rekommenderade artiklar:

Här är några artiklar som hjälper dig att få mer information om Python Fast And python psyco så bara gå igenom länken.

  1. Linux vs Ubuntu-skillnader
  2. 25 mest fantastiska Pythonintervjufrågor och svar
  3. Karriärer i Python
  4. Python vs Node.js
  5. Hjälpsam guide till Kali Linux vs Ubuntu
  6. Lista över Python-kompilatorer

Kategori: