Kujutise allikas: pixabay.com

Kuidas muuta Python kiireks kui Psyco

Hei poisid, tere tulemast minu järgmisesse Pythoni blogisse. Kuid täna ma ei räägi ainult Python kiirest. Nii et enne jätkamist eeldaksin, et teate juba bitti ja * baiti pythoni kohta. Kui olete algaja, saate otsida minu teisi ajaveebisid, õppida tundma pythonit ja siis meie juurde tagasi pöörduda. arutame nüüd teemat Python kiiresti kui Psyco.

Kui olete mõnes muus valdkonnas kogenud programmeerija ja arvate, et teate põhitõdesid ja saate nüüd seda ajaveebi lugeda, siis küsige endalt vaid üks küsimus, kas teate, mis on Psyco? Kui praegu arvate, et see “Psyco” tähendab hullumeelset, siis jällegi pole see värk teie jaoks.

Olete ikka veel vältinud paljusid põhilisi asju või teete nalja just ise öeldes, et olete kogenud programmeerija. Usu mind, püüan selle ajaveebi võimalikult lihtsaks teha ja püüan mitte kedagi solvata. Kuid kui teil pole põhitõdesid õigesti, on teil seda lihtsalt raskem mõista.

Kui jätate raske osa kõrvale, siis hakkate isegi mõtlema, et python fast asjad on palju raskemad kui mis tahes muu programmeerimine, mis on täiesti vale. Nüüd teame, mis on mis, jätkame sellega, kas peame?

Mis on Psyco?

Mis on Psyco? Psyco teeb pythoni kiireks. Segaduses? Jah, ka mina olin segaduses, kui seda esimest korda kuulsin. Python on juba kiire, miks siis psycot kasutada? Sellepärast ma ütlesin. See ajaveeb pole mõeldud noobidele ja algajatele. Kui olete pikka aega kopeerinud python runi, luues suure hulga koode ja kõike muud, siis teate, et python fast vajab kompaktset ja ranget kodeerimist. Õige tüüpi kodeerimisega saate selle muuta nii kiireks kui kompaktseks.

Kuid see vajab aega ja asju. Kompaktseid ja vigadeta koode ei saa sinist värvi luua. Ja just seal tulebki Psyco. Psyco on lihtsalt pütoni kiire pikendusmoodul, mis kiirendab pythoni käituskoodi täitmist. Nii et võite olla praegu segaduses, moodul muudab Pythoni koodi kiiremaks? Jah, täpselt nii see on. Vaatame suuremat pilti.

Python ja selle tõeline loodus

Kui olete varem Java või C kodeerinud, võite arvata, et python run on teistega võrreldes eriti kiire. Kuid seal eksite. Toore jõudluse osas on python kindlasti aeglasem kui C, Java või C #. Kuid python ei ole teada, et selle kiirus oleks töötlemata.

Ainult algajad või noobid teevad toorest kodeerimist. Professionaalsed inimesed teevad korralikke kodeeringuid koos sobivate taandega *. Kui võrrelda õigesti kompileeritud koodi ja mõõta kogu mälukasutust, algset käivitusaega, laadimisaega, siis on python selle ajahetkel eriti kiire.

Lisaks, kui proovite kirjutada koode serveri või muude asjade loomiseks, on Java ülikiire, isegi kiirem kui C. See on võimalik, kuna Java virtuaalmasin võib komponeerida kuuma baidikoodi masinkoodiks. Seda tehes võib see kasutada kõiki protsessori kõiki funktsioone.

Tavaliselt ei ole see C puhul, vähemalt seni, kuni te lahkute laborikeskkonnast. Nüüd lihtsalt oletame, et oma klientidele tosina optimeeritud ehituse levitamine - see lihtsalt ei toimi.

Niisiis, naaseme nüüd tagasi oma põhipunkti, kui käivitusaeg on probleem (mis pole probleem näiteks serverirakenduses) Java ei pruugi olla parim alternatiiv. See võib sõltuda ka näiteks sellest, kus asuvad teie ägedad koodialad: kui need asuvad mõne Pythoni kiirkoodiga natiivraamatukogudes, et neid lihtsalt kokku liimida, saate ka Pythoni abil C-tulemuse saada. Kuid ikkagi kipuvad skriptikeeled olema aeglasemad - vähemalt enamasti.

Soovitatavad kursused

  • VB.NET veebikursus
  • Andmeteaduse veebipõhine sertifitseerimise koolitus
  • Professionaalne ISTQB kursus
  • Kali Linuxi programm

Psyco - on täpselt see, kuidas see kõlab

Jah, sa lugesid seda õigust. Lähme tagasi oma põhiteema juurde. Psühhoarendajad määratlevad seda oma veebilehel just nüüd: -

„Mõelge Psycost kui omamoodi just-in-time (JIT) kompilaatorist, natuke sarnaselt teiste keeltega, mis eraldavad masina koodi lennult, selle asemel et teie Pythoni programmi samm-sammult tõlgendada. Erinevus tavapärasest lähenemisviisist JIT-i kompilaatoritele on see, et Psyco kirjutab samadest plokkidest mitu versiooni (plokk on natuke funktsioon), mida optimeeritakse spetsialiseerumisega teatud tüüpi muutujatele („liik” võib tähendada tüüpi, kuid see on üldisem). Tulemuseks on see, et teie modifitseerimata Pythoni programmid töötavad kiiremini.

Kiirendused 2x kuni 100x, tavaliselt 4x, muutmata Pythoni tõlgi ja modifitseerimata lähtekoodiga, lihtsalt dünaamiliselt laaditava C-pikendusmooduliga. ”

Lühidalt, selle ümber sõnastamiseks lihtsas avalduses annab Psyco teile rohkem Java-laadse jõudluse. Kiiremate algoritmide eest saate aeglasemaid käivitusaegu ja suuremat mälukasutust.

Sellegipoolest on teatud asju, mida tuleks meeles pidada selliste keelte testimisel nagu Java ja Python. Nendes keeltes sisalduvat koodi saab sageli märkimisväärselt kiirendada, kasutades selleks keelele sobivamaid konstruktsioone (nt loendi mõistmine Pythoni kiirkorras või kasutades char () ja String Builderit Java teatud keeltetoimingute jaoks).

Pealegi võib Pythoni kiire jaoks Psyco kasutamine programmi kiirust märkimisväärselt tõsta. Ja siis on kogu küsimus sobivate andmestruktuuride kasutamisest ja oma koodi käitusaja keerukusel silma peal hoidmisel.

Python psyco mõistmiseks peab olema hea arusaam python funktsioonist eval_frame (). See, mida python psyco teeb, teisendab pythoni funktsiooni eval_frame liithindamisüksuseks ja psyco kasutab seda tehes palju mälu. Psyco kasutamine on palju lihtsam kui seda selgitada.

Psyco lihtsalt kasutamiseks laadige psyco moodul alla saidilt sourceforge.net ja hoidke seda koodi oma esimese koodi alguses:

import psyco ; psyco.jit()

from psyco.classes import *

Ja siis saate psyco käitumise täpsemaks sihtimiseks kasutada järgmist käsku:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Kui see kraam alguses teiega ei tööta, peate olema kannatlik. See nõuab katse-eksituse meetodit. Otseselt ei saa oodata, et teie programm töötab nagu Usain Bolt. Säästke mind sarkastiliselt ebaviisakast käitumisest, kuid nii see töötab.

Tegelikkuses ei muuda ega muuda python psyco teie koodi nutikamaks. Vaevalt, et teie kood täpsem on. See teeb minimaalse optimeerimise, et muuta see masinkoodile võimalikult lähedale.

Kuigi python psyco muudab teie programmid sama kiireks kui C, on neil siiski mõned piirangud ja miinused. Järgnevalt on mõned, mida ma olen allpool loetlenud:

  1. Psyco on nüüd vananenud, hooldamata ja surnud. Asendus on PyPy
  2. Psycol on isegi python 2.7-ga palju probleeme. Kuid see töötab v2.5-s palju paremini ja kiiremini
  3. Psyco ei tööta 64-bitistes masinates. Kuid saab installida i386 arhitektuuriga virtuaalmasina ja panna see tööle.
  4. Vaikimisi tuleb Mac OSX-i juurde 64-bitine python. Psyco töötamiseks tuleb uuesti python x86 lähteteksti kompileerida.

Isegi kui neil on nii palju probleeme, kasutavad inimesed PyPy asemel Psycot. Kuid jällegi, kui te minult küsite, on PyPy Psyco jaoks fantastiline alternatiiv. Psyco töötab nagu Just In Time kompilaator, kuid PyPy-l on oma kompilaator Just in Time. Seal, kus Psyco kasutab palju mälu, kasutab PyPy palju vähem mälu kui Psyco. PyPy ühildub veelgi selliste raamistikega nagu Django ja Twisted.

Nii et peale seda kõike, ükskõik mida ma ütlen, on see meie enda tarbeks. Psyco taustaga inimesed soovitavad teil alati Psyco kasutada, samas kui kiirust soovivad inimesed vajaksid PyPy-d. Aga las ma tsiteerin midagi.

"Isegi kui tunnete end selliste mootorratastega nagu R1 või Hayabusa piisavalt hästi, on mõnikord Harley Davidsoniga sõitmine oma rõõm"

See töötab samamoodi Psyco ja PyPy-ga. Niisiis soovitaksin lõpuks, ilma palju vaeva nägemata, kasutada mõlemat alguses ja jätkata siis kõige sellega, mis tunnete end mugavalt.

Soovitatavad artiklid:

Siin on mõned artiklid, mis aitavad teil Python Fast And python psyco kohta üksikasjalikumat teavet saada, nii et lihtsalt minge lingi kaudu.

  1. Linux vs Ubuntu-erinevused
  2. 25 kõige hämmastavamat Pythoni intervjuu küsimust ja vastust
  3. Karjäär Pythonis
  4. Python vs Node.js
  5. Kasulik juhend Kali Linux vs Ubuntu kohta
  6. Pythoni koostajate loetelu

Kategooria: