Mengoptimalkan kode python untuk kecepatan

Python adalah salah satu bahasa pemrograman paling populer di kalangan pengembang. Mudah digunakan, kuat, dan serbaguna. Ini adalah pilihan yang bagus untuk pemula maupun ahli. Kode Python dapat dengan mudah ditulis dan dieksekusi jauh lebih cepat daripada kebanyakan bahasa pemrograman lainnya. Namun, ketika bekerja dengan data dalam jumlah besar, Python bisa sangat lambat. Jika Anda pernah bekerja dengan C/C++, Python mungkin terasa terlalu lambat bagi Anda. Jika Anda adalah pemrogram atau ilmuwan data yang kompetitif, atau jika ingin mengembangkan sistem yang dapat diskalakan di mana banyak orang akan berinteraksi pada satu waktu, perlu memproses data dalam jumlah besar dalam waktu yang sangat singkat, Anda harus lebih berhati-hati dengan runtime . Tapi, jangan khawatir. Untungnya ada beberapa pengoptimalan yang fantastis, perpustakaan yang luar biasa, dan fungsi bawaan yang dapat mempercepat kode Python Anda. Yayy. Pada artikel kali ini saya akan membagikan tips dan trik tersebut. Jadi, pemrogram yang cerdas, mari kita mulai

1. Gunakan Algoritma dan Struktur Data yang Tepat

Setiap struktur data memiliki pengaruh yang signifikan terhadap runtime. Menggunakan struktur yang tepat adalah penting. Python memiliki banyak struktur data bawaan seperti daftar, tupel, set, dan kamus. Daftar banyak digunakan, tetapi itu bukan pilihan yang tepat untuk setiap saat. Pilih yang tepat tergantung pada tugas Anda. Anda dapat menggunakan tuple daripada daftar, karena lebih mudah untuk mengulangi tupel daripada daftar

Jika Anda tidak memiliki item duplikat dalam koleksi, Anda perlu mencari item berulang kali dan koleksi tersebut berisi banyak item, maka menggunakan set dan kamus akan menjadi keputusan yang bijak daripada menggunakan daftar. Kumpulan dan kamus menggunakan tabel hash, jadi, kompleksitas waktu setiap pencarian hanya O[1]. Ini bagus, bukan?

2. Gunakan Fungsi dan Pustaka Bawaan

Python memiliki sejumlah besar fungsi dan pustaka bawaan. menggunakan fungsi bawaan python adalah salah satu cara terbaik untuk mempercepat kode python Anda. Jadi, jangan pernah menulis fungsi Anda secara manual jika sudah ada di perpustakaan. Fungsi perpustakaan telah teruji dengan baik dan sangat dioptimalkan. Alasan mengapa fungsi bawaan ini sangat cepat adalah karena fungsi bawaan python diimplementasikan dalam bahasa C. Beberapa fungsi bawaan yang populer adalah min, max, avg, all, map dll

Contoh

from math import sqrt
	

mylist  = [5, 3, 45, 49]
newlist = []
	

for x in mylist:
    newlist.append[sqrt[x]]

Kode yang ditulis di bawah berfungsi sama, tetapi jauh lebih baik daripada yang di atas. Di sini kita menggunakan fungsi peta bawaan, yang aslinya ditulis dalam bahasa C. Oleh karena itu, jauh lebih cepat daripada menggunakan loop. Juga, di kedua kode kami menggunakan fungsi sqrt[] bawaan daripada menerapkannya secara manual

from math import sqrt
	

mylist = [5, 3, 45, 49]
	

newlist = map[sqrt, mylist]
_

3. Gunakan While Loop, Bukan Untuk Loop

For loop dinamis dalam python, jadi, dibutuhkan lebih banyak waktu daripada while loop. Jadi, gunakan while loop sebagai gantinya

4. Gunakan Tugas Berganda

Jika Anda perlu menetapkan beberapa variabel, jangan tetapkan variabel baris demi baris seperti ini

first   = 1
second  = 2
third   = 3
fourth  = 4

Sebagai gantinya, tetapkan variabel seperti ini

first, second, third, fourth = 1, 2, 3, 4

5. Gunakan Variabel Lokal, Bukan Variabel Global

Python memiliki kata kunci global untuk mendeklarasikan variabel global. Tetapi variabel global membutuhkan waktu lebih lama selama operasi daripada variabel lokal

6. Gunakan Pemahaman Daftar

Saya sangat menyukai fitur ini. Pemahaman daftar membuat kode Anda jauh lebih cepat dan juga mengurangi ukuran kode. Ini juga membantu untuk menghindari menambahkan metode di setiap iterasi. Jadi, jangan gunakan teknik lain jika Anda bisa menggunakan pemahaman daftar. Sebagai contoh

mylist = []
	

for i in range[1, 21]:
    for j in range[1, 21]:
        if i % 3 == 0 and j % 5 == 0:
            mylist.append[[i, j]]
_

menggunakan pemahaman daftar, itu akan menjadi

mylist = [[i, j] for i in range[1, 21] for j in range[1, 21]
           if i % 3 == 0 and j % 5 == 0]

7. Gunakan Metode Gabung untuk Menggabungkan String

Dengan python, Anda dapat menggabungkan string menggunakan + operator. Cara lain menggunakan metode join[] . Alasan mengapa metode join[] lebih cepat daripada + operator, karena + operator membuat string baru lalu menyalin string lama di setiap langkah. Tapi join[] tidak berfungsi seperti itu, meski hasilnya sama

Menggunakan + operator

newstring = "coding" + " " + "is" + " " + "fun"
_

Menggunakan metode bergabung[]

newstring = " ".join[["coding", "is", "fun"]]

8. Gunakan Impor yang Benar, Jangan Gunakan Operasi Dot 🙂

Anda harus menghindari pengimporan modul dan pustaka yang tidak perlu sampai atau kecuali Anda membutuhkannya. Sebaliknya, Anda harus menentukan nama modul alih-alih mengimpor pustaka lengkap. Karena, saat Anda memanggil suatu fungsi menggunakan titik [. ] pertama-tama memanggil __getattribute[]__ atau __getattr[]__ yang kemudian menggunakan operasi kamus yang memerlukan beberapa waktu. Jadi, coba gunakan dari fungsi impor modul. Lihat kode di bawah ini

import math
value = math.sqrt[266]
_

Alih-alih gunakan ini

from math import sqrt
value = sqrt[266]
_

9. Ubah Gaya Pengodean

Coba cara baru untuk menulis kode Anda secara efisien. Lihatlah kode di bawah ini

from math import sqrt
	

mylist = [5, 3, 45, 49]
	

newlist = map[sqrt, mylist]
_0

Alih-alih menulisnya seperti ini

from math import sqrt
	

mylist = [5, 3, 45, 49]
	

newlist = map[sqrt, mylist]
_1

Tampak hebat, benar. 😉 Jauh lebih cepat juga

10. JANGAN Gunakan Panggilan Fungsi yang Tidak Perlu

Memisahkan kode menjadi fungsi seringkali merupakan praktik yang baik, tetapi, tahukah Anda? . Jadi, Anda harus berhati-hati dalam memanggil fungsi dari dalam loop. Lihatlah kode contoh

from math import sqrt
	

mylist = [5, 3, 45, 49]
	

newlist = map[sqrt, mylist]
_2

Seperti yang sudah kita ketahui fungsi memiliki banyak overhead, jadi, dengan menulis seperti ini Anda. dapat menghemat banyak waktu relatif terhadap total

from math import sqrt
	

mylist = [5, 3, 45, 49]
	

newlist = map[sqrt, mylist]
_3

11. Gunakan Perpustakaan Khusus Untuk Memproses Kumpulan Data Besar

Kita sudah tahu, C/C++ lebih cepat dari Python, bukan? . Yang paling populer adalah Numpy, Scipy dan Panda. Coba gunakan mereka untuk memproses kumpulan data besar

12. Gunakan Rilis Terbaru Python

Banyak pengembang di seluruh dunia menggunakan Python. Python diperbarui dan ditingkatkan secara berkala, dan di setiap rilisnya menjadi lebih stabil, lebih cepat, dan lebih optimal. Jadi, usahakan selalu menggunakan Python versi terbaru

Kesimpulan

Ini semua untuk hari ini. Harap Anda menikmati. Percayalah, akan sangat membantu bagi Anda untuk membuat kode Anda lebih cepat dari sebelumnya jika Anda dapat menggunakan semua tip dan trik dengan benar dalam kode Anda. Ada beberapa teknik lanjutan yang bisa Anda gunakan, seperti menggunakan pypy, menggunakan cython, menggunakan thread, menggunakan asyncio, multiprocessing dll. Threading dan asyncio untuk perangkat lunak terikat I/O, dan multiprosesor untuk masalah terikat CPU. Untuk percepatan lebih lanjut, Anda dapat meningkatkan skala dengan memanfaatkan platform komputasi awan seperti Hadoop, semua yang mungkin Anda ketahui namanya. Saya akan menulis artikel terpisah untuk ini. Tapi, setelah hari itu, ini semua tentang latihan. Banyak berlatih. Selamat Pemrograman

Terakhir, jika Anda menyukai artikelnya, silakan suka dan bagikan, ikuti juga profil saya untuk mendapatkan lebih banyak artikel reguler. Jika Anda memiliki pertanyaan, silakan komentar di bawah ini. Tangkap saya di Medium dan Github. Mail saya di amirulislamalmamun@gmail. com

Bagaimana Anda mengoptimalkan kode dengan Python?

Tips & Trik Pengoptimalan Python .
String Magang untuk Efisiensi. .
Pengoptimalan Lubang Intip. .
Gunakan Generator dan Kunci untuk Penyortiran. .
Mengoptimalkan Loop. .
Gunakan Set Operasi. .
Hindari Menggunakan Global. .
Gunakan Perpustakaan/Paket Eksternal. .
Gunakan Operator Bawaan

Bagaimana cara membuat kode saya berjalan lebih cepat?

5 Teknik Sederhana untuk Menulis Kode Anda Lebih Efisien dengan Python. Jadikan kode Anda lebih cepat, lebih mudah dibaca, dan lebih mudah dipahami. .
Membuat Fungsi. .
Hilangkan Operasi yang Tidak Penting. .
Gunakan Paket untuk Keuntungan Anda. .
Hindari Mendeklarasikan Variabel yang Tidak Perlu. .
Putuskan Loop Bila Diperlukan

Bagaimana kecepatan kode Python dihitung?

Tiga cara populer untuk mengukur kinerja kode Python adalah. .
Menggunakan waktu. fungsi perf_counter[]
Menggunakan modul timeit
Menggunakan modul profile dan cProfile

Bisakah Python dipercepat?

Dibandingkan bekerja dengan bahasa seperti C dan C++, Python terkadang terasa terlalu lambat. Untungnya ada beberapa pustaka fantastis dan fungsi bawaan yang dapat mempercepat kode Python .

Bài mới nhất

Chủ Đề