C++ ja Pythoni jõudlused võrrelduna

Erinevate keelte puhul sõltub programmi käitamise kiirus väga paljudest asjaoludest, sealhulgas riistvaralisest arhitektuurist, mälukasutusest ja teistest fundamentaalsetest teguritest. Tuleb arvestada, et C++ ja Python on omavahel võrreldes väga erinevat tüüpi programmeerimiskeeled.

C++ ja Pythoni jõudlused võrrelduna

C++ on kompileeritav keel, mis tähendab, et sinu kirjutatud kood tõlgitakse otse masinakeelde enne programmi käivitamist. See annab koodile otsese juurdepääsu riistvarale ja mälule, mis teeb selle potentsiaalselt väga kiireks.

 

Python on interpreteeritav keel, mis tähendab, et sinu koodi "tõlgitakse" ja käivitatakse samal ajal spetsiaalse programmi ehk interpretaatori abil. See lisab protsessile lisakihi, mis muudab Pythoni üldjuhul C++-st aeglasemaks.

 

Kiiruse erinevust mõjutavad tegurid

 

  • Ülesande tüüp: Lihtsate operatsioonide, näiteks andmete töötlemise puhul, võib Python olla C++-st isegi mitu korda aeglasem. Kui aga tegemist on näiteks veebirakenduse või andmebaasipäringutega, kus kitsaskohaks on I/O-operatsioonid (sisend-väljund), ei pruugi C++ ja Pythoni kiiruse vahe olla nii märkimisväärne.

  • Teekide (libraries) kasutamine: Pythoni jaoks on loodud väga palju C++-ga kirjutatud teeke, mis on ülimalt optimeeritud. Näiteks NumPy ja Pandas teegid andmeteaduses on väga efektiivsed, sest nende alus on C++. Sel juhul on Pythoni koodi kiirus peaaegu sama mis C++ koodil.

  • Koodi optimeerimine: Halvasti kirjutatud C++ kood võib olla aeglasem kui hästi optimeeritud Pythoni kood. Seega ei olene kiirus ainult keelest, vaid ka sellest, kui osavalt programmeerija koodi kirjutab.

 


 

Kokkuvõte

 

Üldiselt võib öelda, et C++ on märgatavalt kiirem kui Python, kui võrrelda lihtsaid arvutusi.

Mõnel juhul võib C++ olla isegi 10-100 korda kiirem.

 

Kui aga kasutada Pythoni jaoks optimeeritud teeke, siis võib kiiruse vahe olla tühine. Lõppkokkuvõttes sõltub kõik sellest, millist ülesannet lahendad ja kuidas kood on kirjutatud.

Monteeri lihtsalt ja kiiresti

Riistvara montaa¾ on jaotatud etappideks ja toetatud õppevideodega. Vaata lähemalt.

 

Tarkvaratugi

Loe riistvaralist portide lugemist ja muutujate defineerimist toetava tarkvarateegi kohta