Kuvan lähde: pixabay.com

Kuinka tehdä Python nopeaksi kuin Psyco

Hei kaverit, tervetuloa seuraavaan Python-blogiini. Mutta tänään en puhu pelkästään Pythonin nopeudesta. Joten ennen kuin jatkan, luulen, että tiedät jo bitit ja * tavut pythonista. Jos olet aloittelija, voit etsiä muita blogejani, oppia pythonista ja saada takaisin meille. Nyt keskustelemme aiheesta Python nopeasti kuin Psyco.

Jos olet kokenut ohjelmoija jollakin toisella alalla, ja luulet tietäväsi perusasiat ja nyt osaa lukea tätä blogia, kysy vain itsellesi yksi kysymys, tiedätkö mikä on Psyco? Jos tällä hetkellä ajattelet, että tämä “Psyco” tarkoittaa hullua, niin jälleen kerran, tämä tavara ei ole sinulle.

Olet silti välttänyt paljon perustietoja tai pelaat vain itseäsi sanomalla, että olet kokenut ohjelmoija. Luota minuun, yritän tehdä tästä blogista mahdollisimman helpon ja yritän olla loukkaamatta ketään. Mutta jos sinulla ei ole perustietoja oikein, sinun on vain vaikeampaa ymmärtää tämä.

Jätä kova osa syrjään, saatat jopa alkaa ajatella, että python-nopeat asiat ovat paljon vaikeampia kuin mikään muu ohjelmointi, mikä on täysin väärin. Joten nyt tiedämme mitä on, jatkakaamme sitä, vai mitä?

Mikä on Psyco?

Joten mikä on Psyco? Psyco tekee pythonin nopeasti. Hämmentynyt? Kyllä, minäkin sekaisin, kun kuulin sen ensimmäistä kertaa. Python on jo nopea, niin miksi käyttää psycoa? Siksi sanoin. Tämä blogi ei ole tarkoitettu aloittelijoille ja aloittelijoille. Jos olet koodattu python-ajoon pitkän aikaa luomalla suuren määrän koodeja ja kaikkea, niin tiedät, että python-nopea tarvitsee tiiviin ja tiukan koodauksen. Oikean tyyppisellä koodauksella voit tehdä siitä nopeaa ja pienikokoista.

Mutta se tarvitsee aikaa ja tavaraa. Et voi luoda kompakteja ja virheetöntä koodeja sinisestä. Ja siellä Psyco syntyy. Psyco on vain python-pikalaajennusmoduuli, joka nopeuttaa python-ajon koodin suorittamista. Joten, saatat olla hämmentynyt juuri nyt, moduuli saa aikaan Python-koodin ajamisen nopeammin? Kyllä, juuri se se on. Siirrytään suurempaan kuvaan.

Python ja sen todellinen luonto

Jos sinulla on aiemmin koodattu Java tai C, saatat ajatella, että python-ajo on erittäin nopeaa kuin muilla. Mutta siinä olet väärässä. Raakaan suorituskykyyn nähden python on ehdottomasti hitaampi kuin C, Java tai C #. Mutta pythonia ei tunneta nopeudesta raa'assa suorituskyvyssä.

Vain aloittelijat tai noobit tekevät raa'an koodauksen. Ammattilaiset tekevät oikean koodauksen ja oikeat sisennykset *. Kun vertaat oikein koottua koodia ja mitaat muistin kokonaiskäyttöä, aloitusaikaa, latausaikaa, python-ajo on tuolloin erittäin nopea.

Lisäksi, jos yrität kirjoittaa koodeja palvelimen tai muun aineiston luomiseksi, Java on erittäin nopea, jopa nopeampi kuin C. Tämä on mahdollista, koska Java-virtuaalikone saattaa kääntää kuuman tavukoodin konekoodiksi. Tätä tehtäessä se voi hyödyntää kaikkia prosessorin kaikkia ominaisuuksia.

Tämä ei tyypillisesti ole C: n kohdalla, ainakin siihen asti, kun poistut laboratorioympäristöstäsi. Oletetaan nyt, että jaat tusinaa optimoituja rakennuksia asiakkaillesi - se ei yksinkertaisesti toimi.

Palataanpa nyt takaisin pääkohdaamme, jos käynnistysaika on ongelma (mikä ei ole ongelma esimerkiksi palvelinsovellukselle) Java ei ehkä ole paras vaihtoehto. Se voi myös riippua esimerkiksi siitä, missä hot-koodialueesi ovat: Jos ne sijaitsevat alkuperäisissä kirjastoissa jollain Python-pikakoodilla yksinkertaisesti liimaamalla ne yhteen, pystyt myös saamaan C: n suorituskyvyn Pythonilla nopeasti. Mutta silti, skriptikielet ovat yleensä hitaampia - ainakin suurimman osan ajasta.

Suositellut kurssit

  • VB.NET-verkkokurssi
  • Tietotekniikan verkkosertifiointikoulutus
  • Ammatillinen ISTQB-kurssi
  • Kali Linux -ohjelma

Psyco - on tarkalleen miltä se kuulostaa

Joo, luit oikein. Palataanpa nyt takaisin pääaiheeseemme. Nyt psykokehittäjät määrittelevät ne verkkosivuillaan: -

”Ajattele Psycoa eräänlaisena juuri ajoissa (JIT) -kokoonpanona, hiukan kuin muilla kielillä, jotka lähettävät konekoodin lennossa sen sijaan, että tulkitsisi Python-ohjelmaa vaihe vaiheelta. Ero perinteiseen lähestymistapaan JIT-kääntäjiin nähden on se, että Psyco kirjoittaa useita versioita samoista lohkoista (lohko on vähän funktio), jotka optimoidaan erikoistumalla tietyntyyppisiin muuttujiin (”laji” voi tarkoittaa tyyppiä, mutta se on yleisempi). Tuloksena on, että muokkaamattomat Python-ohjelmasi toimivat nopeammin.

2x - 100x nopeudet, tyypillisesti 4x, modifioimattomalla Python-tulkilla ja modifioimattomalla lähdekoodilla, vain dynaamisesti ladattava C-laajennusmoduuli. "

Lyhyesti sanottuna, sanoen sanamuodon yksinkertaisella lausunnolla Psyco antaa sinulle enemmän Java-tyyppistä suorituskykyä. Saat hitaammat aloitusajat ja suuremman muistin käytön vastineeksi nopeammille algoritmeille.

Tietyt asiat, jotka tulisi muistaa testattaessa kieliä, kuten Java ja Python. Näiden kielten koodia voidaan usein nopeuttaa merkittävästi käyttämällä kielelle sopivimpia rakenteita (esim. Luettelon ymmärtäminen Python fast -sovelluksessa tai käyttämällä char () ja String Builder -sovellusta tietyissä Java-kielisoperaatioissa).

Lisäksi Python fast -sovelluksissa Psycon käyttäminen voi lisätä huomattavasti ohjelman nopeutta. Ja sitten on koko asia, joka käyttää asianmukaisia ​​tietorakenteita ja pitää silmällä koodisi suorituksenaikainen monimutkaisuus.

Python-psycon ymmärtämiseksi on ymmärrettävä pythonin eval_frame () -toiminto. Se mitä python psyco tekee, muuntaa pythonin eval_frame-toiminnon yhdistetyksi arviointiyksiköksi, ja psyco käyttää tätä paljon muistia. Psycon käyttäminen on paljon helpompaa kuin selittää se.

Yksinkertaisesti psycon käyttämiseksi lataa psyco-moduuli lähteestä sourceforge.net ja pidä sitten tämä koodi ensimmäisen koodin alussa:

import psyco ; psyco.jit()

from psyco.classes import *

Ja sitten voit käyttää seuraavaa komentoa kohdistaaksesi psycon käyttäytymisen tarkemmin:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Jos nämä asiat eivät ensin toimi kanssasi, sinun on oltava kärsivällinen. Se vaatii kokeiluja ja virheitä. Et voi suoraan odottaa ohjelman toimivan kuten Usain Bolt. Säästä minua sarkastinen töyke käyttäytyminen, mutta niin se toimii.

Todellisuudessa python psyco ei muuta tai muokkaa koodiasi älykkäämmäksi. Se tuskin profiloi koodiasi tarkemmaksi. Se tekee minimaalisen optimoinnin tehdäkseen siitä mahdollisimman lähelle konekoodia.

Vaikka python psyco tekee ohjelmistasi yhtä nopeasti kuin C, niihin on joitain rajoituksia ja haittoja. Seuraavassa on joitain, jotka olen luetellut alla:

  1. Psyco on nyt vanhentunut, ylläpitämätön ja kuollut. Korvaava on PyPy
  2. Psycolla on paljon ongelmia jopa python 2.7: n kanssa. Mutta se toimii paljon paremmin ja nopeammin versiossa 2.5
  3. Psyco ei toimi 64-bittisissä koneissa. Mutta voidaan asentaa i386-arkkitehtuurilla varustettu virtuaalikone ja saada se toimimaan.
  4. Oletusarvoisesti Mac OSX sisältää python 64-bittisen. Jokainen on käännettävä python x86 lähteestä, jotta Psyco toimisi.

Vaikka meillä on niin paljon ongelmia, ihmiset käyttävät silti Psycoa PyPyn sijaan. Mutta jälleen kerran, jos kysyt minulta, PyPy on mahtava vaihtoehto Psycolle. Psyco toimii kuin Just In Time -kääntäjä, mutta PyPyllä on oma Just in time -kääntäjä. Missä Psyco käyttää paljon muistia, PyPy käyttää paljon vähemmän muistia kuin Psyco. PyPy on entistä yhteensopivampi kehysten kuten Django ja Twisted kanssa.

Joten kaiken tämän jälkeen, riippumatta siitä mitä sanon, se on omaan käyttöön. Psycon taustalla olevat ihmiset ehdottavat sinun käyttävän Psycoa, kun taas nopeutta haluavat ihmiset tarvitsevat PyPyn. Mutta sallikaa minun lainata jotain.

"Vaikka sinusta tuntuu tarpeeksi hyvällä moottoripyörällä, kuten R1 tai Hayabusa, joskus Harley Davidsonilla ajaminen on oma ilo"

Se toimii samalla tavalla Psycon ja PyPyn kanssa. Joten lopulta, ilman paljon vaivannäköä, ehdotan, että käytät molempia alussa ja jatka sitten sen mukaan, mikä tuntuu mukavalta.

Suositellut artikkelit:

Tässä on artikkeleita, jotka auttavat sinua saamaan lisätietoja Python Fast And python psycosta, joten mene vain linkin läpi.

  1. Linux vs. Ubuntu-erot
  2. 25 upeinta Python-haastattelua koskevat kysymykset ja vastaukset
  3. Ura Pythonissa
  4. Python vs Node.js
  5. Hyödyllinen opas Kali Linux vs. Ubuntulle
  6. Luettelo Python-kääntäjistä