Savjeti za programiranje

10 najboljih i korisnih savjeta za ubrzanje vašeg Python koda

10 najboljih i korisnih savjeta za ubrzanje vašeg Python koda

Ako vas netko pita - „Koji je trenutno najbrže rastući programski jezik na svijetu?”Odgovor će biti jednostavan. Njegov piton. Svjetska popularnost zaslužna je zbog jednostavne sintakse i bogatih knjižnica. Danas s pythonom možete učiniti gotovo sve: znanost o podacima, strojno učenje, obrada signala, vizualizacija podataka - kako god vi to dali. Međutim, mnogi ljudi tvrde da je python malo spor dok rješava ozbiljne probleme. Ali vrijeme izvođenja programa ovisi o kodu koji se napiše. Uz neke savjete i trikove možete ubrzati Python kod i poboljšati izvedbu programa.

Savjeti i trikovi za ubrzanje Python koda


U slučaju da tražite načine kako ubrzati svoj python kôd, članak je za vas. Ilustrira tehnike i strategije za smanjenje vremena izvršavanja programa. Savjeti ne samo da će ubrzati kôd, već će poboljšati i python vještine.

01. Koristite ugrađene knjižnice i funkcije


Python ima mnoštvo knjižničnih funkcija i modula. Napisali su ih stručni programeri i nekoliko su puta testirani. Dakle, ove su funkcije vrlo učinkovite i pomažu ubrzati kod - nema potrebe za pisanjem koda ako je funkcija već dostupna u knjižnici. U tom pogledu uzimamo jednostavan primjer.

# code1 newlist = [] za riječ na starom popisu: novi popis.dodati (riječ.Gornji())
# code2 newlist = karta (str.gornji, stari popis)

Ovdje je drugi kod brži od prvog, jer je korištena mapa funkcije knjižnice (). Ove su funkcije korisne za početnike. Tko ne želi pisati brži, kao i čisti i manji kod? Stoga, koristite funkcije i module knjižnice što je više moguće.

02. Ispravna struktura podataka na pravom mjestu


Korištenje odgovarajuće strukture podataka smanjit će vrijeme izvođenja. Prije početka morate razmisliti o strukturi podataka koja će se koristiti u kodu. Savršena struktura podataka ubrzat će python kod, dok će ga drugi zabrljati. Morate imati predodžbu o vremenskoj složenosti različitih struktura podataka.

Python ima ugrađene podatkovne strukture kao što su popis, skup, skup i rječnik. Ljudi su naviknuti na korištenje popisa. Ali postoje slučajevi u kojima nabor ili rječnik djeluju puno bolje od popisa. Da biste naučili više struktura podataka i algoritama, morate proći kroz Python knjige za učenje.

03. Try kako bi smanjili upotrebu za Petlja


Prilično je teško izbjeći upotrebu za petlja. Ali kad god imate priliku spriječiti to, stručnjaci kažu da to činite. Petlja for je dinamična u pythonu. Njegovo je vrijeme izvođenja više od neko vrijeme. Ugnježđena petlja za puno je dugotrajnija. Dvije ugniježđene petlje za uzet će kvadrat vremena u jednoj petlji for.

# code1 za i u big_it: m = re.traži (r '\ d 2 - \ d 2 - \ d 4', i) ako je m:… 
# code2 datum_regeksa = ponovno.prevesti (r '\ d 2 - \ d 2 - \ d 4') za i u big_it: m = date_regex.traži (i) ako je m:… 

U ovom je slučaju bolje koristiti prikladnu zamjenu. Štoviše, ako za petlje su neizbježne, premjestite izračun izvan petlje. Uštedjet ćete puno vremena. To možemo vidjeti na primjeru navedenom gore. Ovdje je 2. kôd brži od 1. koda jer je izračun izvršen izvan petlje.

04. Izbjegavajte globalne varijable


Globalne varijable se u pythonu koriste u mnogim slučajevima. Za njegovu deklaraciju koristi se globalna ključna riječ. Ali vrijeme izvođenja ovih varijabli više je od vremena lokalne varijable. Korištenje manje njih štedi od nepotrebnog korištenja memorije. Osim toga, Python brže skuplja lokalnu varijablu od globalne. Kada se kreće vanjskim varijablama, Python je istinski trom.

Nekoliko drugih programskih jezika protivi se neplaniranoj uporabi globalnih varijabli. Brojač je posljedica nuspojava koje dovode do većeg vremena izvođenja. Dakle, pokušajte koristiti lokalnu varijablu umjesto globalne kad god je to moguće. Štoviše, možete napraviti lokalnu kopiju prije nego što je upotrijebite u petlji, štedeći vrijeme.

05. Povećajte upotrebu razumijevanja popisa


Razumijevanje popisa nudi kraću sintaksu. Pregršt je kad se novi popis napravi na temelju postojećeg popisa. Petlja je obavezna u bilo kojem kodu. Ponekad sintaksa unutar petlje postaje velika. U tom se slučaju može koristiti razumijevanje popisa. Možemo uzeti primjer da bismo ga preciznije razumjeli.

# code1 kvadratni_brojevi = [] za n u rasponu (0,20): ako je n% 2 == 1: kvadratni_brojevi.dodati (n ** 2)
# code2 kvadratni_brojevi = [n ** 2 za n u rasponu (1,20) ako je n% 2 == 1]

Ovdje drugom kodu treba manje vremena od prvog koda. Pristup razumijevanju popisa je kraći i precizniji. Možda neće imati velike razlike u malim kodovima. Ali u opsežnom razvoju, možete uštedjeti neko vrijeme. Dakle, koristite razumijevanje popisa kad god imate priliku ubrzati svoj Python kôd.

06. Zamijeni raspon () s xrange ()


Stvar dometa () i xrange () dolazi ako koristite python 2. Te se funkcije koriste za ponavljanje bilo čega u petlji for. U slučaju range (), sprema sve brojeve iz raspona u memoriju. Ali xrange () sprema samo raspon brojeva koje treba prikazati.

Povratna vrsta raspona () je popis, a vrsta xrange () objekt. Na kraju, xrange () uzima manje memorije i, kao rezultat, manje vremena. Dakle, koristite xrange () umjesto range () kad god je to moguće. Naravno, ovo se odnosi samo na korisnike python 2.

07. Koristite generatore


U pythonu, generator je funkcija koja vraća iterator kad se pozove prinos ključne riječi. Generatori su izvrstan optimizator memorije. Vraćaju po jednu stavku, umjesto da vraćaju sve odjednom. Ako vaš popis uključuje znatan broj podataka i trebate koristiti jedan po jedan podatak, upotrijebite generatore.

Generatori računaju podatke u komadima. Stoga funkcija može vratiti rezultat kad se pozove i zadržati svoje stanje. Generatori čuvaju stanje funkcije zaustavljanjem koda nakon što pozivalac generira vrijednost, a on nastavlja raditi od mjesta na kojem je zaustavljen na zahtjev.

Budući da generatori pristupaju i izračunavaju vrijednost na zahtjev, značajan dio podataka ne treba u potpunosti spremiti u memoriju. To rezultira znatnom uštedom memorije, što u konačnici ubrzava kod.

08. Spoji žice pomoću Join


Spajanje je prilično često kod rada sa žicama. Općenito, u pythonu se spajamo pomoću '+'. Međutim, u svakom koraku operacija "+" stvara novi niz i kopira stari materijal. Taj je postupak neučinkovit i traje puno vremena. Moramo koristiti join () za spajanje nizova ovdje ako želimo ubrzati naš Python kod.

# code1 x = "I" + "am" + "a" + "python" + "geek" print (x)
# code2 x = "".join (["I", "am", "a", "python", "geek"]) print (x)

Ako pogledamo primjer, prvi kôd ispisuje "Iamapythongeek", a drugi kôd ispisuje "Ja sam python geek".  Operacija join () učinkovitija je i brža od '+'. Također održava kôd čistim. Tko ne želi brži i čišći kod? Dakle, pokušajte upotrijebiti join () umjesto '+' za spajanje nizova.

09. Profilirajte svoj kod


Profiliranje je klasičan način optimizacije koda. Postoji mnogo modula za mjerenje statističkih podataka programa. Oni nam daju do znanja gdje program troši previše vremena i što učiniti za njegovu optimizaciju. Dakle, kako biste osigurali optimizaciju, provedite neka ispitivanja i poboljšajte program kako biste poboljšali učinkovitost.

Tajmer je jedan od profila. Možete ga koristiti bilo gdje u kodu i pronaći vrijeme izvođenja svake faze. Tada možemo poboljšati program tamo gdje traje predugo. Štoviše, postoji ugrađeni modul za profiliranje nazvan LineProfiler. Također daje opisno izvješće o utrošenom vremenu. Postoji nekoliko profila koji možete naučiti čitajući knjige o pythonu.

10. Ažurirajte se - koristite najnoviju verziju Pythona


Postoje tisuće programera koji redovito dodaju više značajki u python. Moduli i funkcije knjižnice koje danas koristimo sutra će zastarjeti. Programeri Pythona iz dana u dan čine jezik bržim i pouzdanijim. Svako novo izdanje povećavalo je svoje performanse.

Dakle, moramo ažurirati knjižnice na najnoviju verziju. Python 3.9 je sada najnovija verzija. Mnoge knjižnice pythona 2 možda se neće izvoditi na python3. Imajmo to na umu i uvijek upotrebljavajte najnoviju verziju kako biste postigli maksimalne performanse.

Napokon, Uvidi


Vrijednost programera Pythona u svijetu raste iz dana u dan. Pa što čekaš! Krajnje je vrijeme da počnete učiti ubrzati python kod. Savjeti i trikovi koje smo vam pružili zasigurno će vam pomoći da napišete učinkovite kodove. Ako ih slijedite, možemo se nadati da možete poboljšati svoj kod i prijeći na naprednije python stvari.

Pokušali smo prikazati sve glavne trikove i savjete koji su potrebni za ubrzavanje koda. Nadamo se da je članak odgovorio na većinu vaših pitanja. Ostalo je na vama. Međutim, nema kraja znanju i nema kraja učenja. Dakle, ako smo nešto veliko propustili, javite nam. Sretno učenje!

Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...