toisin kuin muut ohjelmointikielet, python painottaa laajasti koodin luettavuutta. Sen yksinkertainen ja ilmeikäs syntaksi antaa kehittäjille mahdollisuuden lisätä toimintoja ohjelmistosovelluksiin kirjoittamatta pitkää ja monimutkaista koodia. Python on myös yksi dynaamisimmista ohjelmointikielistä. Ohjelmoijat voivat toteuttaa Pythonia useilla tavoilla. Heillä on jopa mahdollisuus valita useista toteutuksista Python. Python-ohjelmointikielen oletustoteutus on CPython.
vaikka se on kirjoitettu C-ohjelmointikielellä, CPython jaetaan tavallisena Python-kirjastona. Se kokoaa Pythonin lähdekoodin välikoodiksi. Välibytekoodin toteuttaa cpython-virtuaalikone. Monet ohjelmoijat valitsevat Cpythonin, koska se on yhteensopiva useiden Python-pakettien ja C-laajennusmoduulien kanssa. Mutta CPython compilation tekee Pythonista hitaamman kuin eri kootut ohjelmointikielet ja vaatii lisää palvelinresursseja.
siksi monet ohjelmoijat valitsevat vaihtoehtoisen Python-toteutuksen koodin suoritusnopeuden lisäämiseksi. Heillä on jopa mahdollisuus valita useista vaihtoehdoista CPython-Jython, IronPython, Sython, PyPy ja CLPython. Mutta suuri osa Python-ohjelmoijista pitää pypyä muita toteutuksia parempana sen optimaalisen suorituskyvyn ja nopeuden vuoksi. Muista toteutuksista poiketen PyPy on kirjoitettu Python-ohjelmointikielellä. Se käyttää jopa tulkkia, joka on kirjoitettu Python — ohjelmointikielen osajoukkoon-RPython.
pypy lisää Python-koodin suoritusnopeutta rajusti just-in-time (JIT) – käännöksen avulla. Se hyödyntää JIT: n kokoamismenetelmiä tulkkijärjestelmän tehokkuuden ja suorituskyvyn parantamiseksi. JIT-kääntäjä saa Pypyn ajamaan sekä lyhyitä että pitkiä Python-ohjelmia paljon nopeammin kuin vastaavia toteutuksia. Useat tutkimukset viittaavat jopa siihen, että PyPy on noin 7,5 kertaa nopeampi kuin CPython. Jokainen uusi versio PyPy edelleen mukana parantaa suorituskykyä ja suorittaa Python-ohjelmia nopeammin kuin edeltäjänsä.
miksi kehittäjät suosivat Pypyä muita Pythonin toteutuksia?
Jit Compilation
PyPy pyrkii optimoimaan kunkin Python-ohjelman suoritusnopeuden. Siinä on sisäänrakennettu JIT-kääntäjä. Se jopa käyttää JIT-käännösmenetelmiä sekä yksinkertaisten että suurten Python-ohjelmien suorittamiseen nopeammin kuin Python-oletustoteutus. Siksi monet kehittäjät valitsevat Pypyn suorittamaan suuria ja monimutkaisia Python-sovelluksia nopeammin.
vähentynyt muistinkulutus
koodin suoritusajan pidentämisen lisäksi PyPy tekee myös Python-ohjelmista vähemmän muistia kuluttavia. Muistin käytön väheneminen voi kuitenkin vaihdella ohjelmasta toiseen. Pypy saa silti Python-ohjelmat kuluttamaan vähemmän muistia kuin CPython.
Pinoton Python — tuki
PyPy tukee edelleen Python-ohjelmointikielen tehostettua versiota-Pinotonta Pythonia. Pinoton Python on toteutettu kierrepohjaisia ohjelmia Pythonia tehokkaammin. Se jopa auttaa ohjelmoijia välttämään joitakin monimutkaisia ja suorituskykyyn liittyviä kysymyksiä, jotka liittyvät tavanomaisiin viestiketjuihin. Pypyä käyttäessään ohjelmoijat voivat jopa nopeuttaa sovelluksia kirjoittamalla koodia samanaikaisella tyylillä.
erilainen Sandboxing-lähestymistapa
PyPy käyttää edelleen sandboxing-lähestymistapaa, jonka avulla ohjelmoijat voivat ajaa epäluotettavia Python-ohjelmia tehokkaammin. Sandboxing-lähestymistapa ei vaadi ohjelmoijia rajoittamaan turvattomina pidettyjen kieliominaisuuksien käyttöä. Sen sijaan se korvaa Python-ohjelmasta ulkoisiin kirjastoihin tehdyn puhelun tyngällä. Tynkä on vuorovaikutuksessa kolmannen osapuolen kirjastojen kanssa prosessinkäsittelypolitiikan perusteella. Hiekkanyrkkeily on kuitenkin edelleen toimiva prototyyppi.
kokonaisuutena PyPy on paljon nopeampi kuin muut Pythonin toteutukset. Kuten useat tutkimukset osoittavat, se on noin 7,5 kertaa nopeampi kuin CPython. Myös jokainen uusi versio PyPy mukana parantaa suorituskykyä. Suoritusaika voi kuitenkin vaihdella ohjelmasta toiseen. Erityisten tutkimusten mukaan PyPy suorittaa puhdasta Python-koodia paljon nopeammin ohjelmia, jotka kutsuvat C-koodattuja toimintoja. Siksi Python-kehittäjien on pidettävä mielessä pypyn hyvät ja huonot puolet Python-koodin suoritusnopeuden optimoimiseksi.