Oke, saya tidak bisa melihat Anda, tapi saya tahu apa yang Anda rasakan, Anda meragukan saya sekarang, Anda
berpikir generator tidak berguna.
Anda terus mengatakan bahwa mereka cepat dan berkinerja, tetapi saya tidak begitu mengerti.
Keyboard LTH ini dan ini berikutnya.
Dan jujur, itu tidak masuk akal.
Biarkan saya meyakinkan Anda tentang kekuatan mereka yang sebenarnya.
Saya akan memilih semua ini dan hanya menghapusnya, karena saya ingin kembali ke contoh yang telah kita
gunakan sebelumnya.
Ingat saat kami membuat pertunjukan dekorator?
Di bagian dekorator kami.
Menggunakan dekorator kinerja ini, mari kita meminimalkannya, saya harus.
Fungsi bagi kami, fungsi lama yang menggunakan rentang.
Dan fungsi lama lainnya yang menggunakan rentang dan kemudian mengubahnya menjadi daftar.
Jadi ingat, seseorang membuat daftar dan kemudian dari daftar itu yang membuat memori di komputer kita, itu akan pergi satu
per satu dan mengalikan hal-hal dengan lima versus rentang, yang merupakan generator yang dibangun ke dalam
Python yang akan hanya satu per satu, tahan nol dan memori dan kalikan dengan lima.
Simpan satu di memori, tetapi kalikan dengan lima dan terus, terus, terus, dan hapus dari memori
nomor lama apa pun.
Bagaimana menurut Anda kinerja keduanya?
Mari kita mengujinya.
Dan omong-omong, saya akan menautkan ke latihan sehingga Anda dapat mengujinya sendiri dan bermain-main.
Jadi mari kita lakukan untuk waktu yang lama.
Dan kemudian lama untuk.
Pasang taruhan Anda, bersiaplah.
Mari kita cari tahu.
Fungsi pertama lama memakan waktu satu koma enam detik.
Dan kemudian fungsi kedua memakan waktu hampir dua kali lebih lama.
Itu perbedaan yang cukup besar, bukan?
Tapi segera, kita bisa tahu.
Baiklah, ini pasti lebih berkinerja daripada, yah, lama untuk menjalankannya lagi hanya untuk menguji asumsi
kita, pastikan itu benar.
Kali ini, butuh satu koma delapan dan kemudian dua koma enam.
Baiklah.
Ini jauh lebih cepat, meskipun mereka berdua melakukan hal yang sama.
Dan pikirkan ini.
Jika Anda adalah Google, pikirkan tentang berapa banyak data yang dimiliki Google jika Anda bekerja di Google dan
bayangkan jika ini lebih besar, jika ini lebih lama, jika Anda dapat melakukan tugas lebih cepat.
Gunakan lebih sedikit sumber daya daripada yang dimiliki Google.
Maksud saya, mereka akan menyukai Anda karena dengan generator tidak dapat menyimpan sesuatu di memori, tidak
harus menghabiskan semua sumber daya itu dan sebaliknya memproses data secara efisien.
Dan lihat ke sini.
Saya dapat menyelesaikan fungsi ini dalam 16 detik.
Maksudku, ya, itu butuh waktu lama, tapi waktu yang lama untuk benar-benar bisa membuatnya.
Itu membunuh proses.
Jika ini adalah server Google, itu adalah server yang baru saja mati dan sama sekali tidak berguna.
Jadi generator benar-benar berguna saat menghitung kumpulan data yang besar, terutama jika kita menggunakan loop panjang di mana kita
tidak benar-benar ingin menyimpan memori itu dan kita tidak perlu menghitung semuanya pada saat yang sama, mungkin
satu per satu.
Dan banyak perpustakaan di Python di bawah tenda menggunakan generator daripada menggunakan daftar karena mereka jauh
lebih cepat.
Jadi ingatlah untuk membuat generator.
Yang harus kita lakukan adalah membuat fungsi generator yang kita inginkan.
Dan kemudian di sini, kita cukup mengulang beberapa nilai.
Itu mungkin kita berikan ke kisaran atau kita bisa menerimanya sebagai parameter dan yang perlu kita
lakukan hanyalah menghasilkan hasil itu.
Dan lakukan apa pun yang kita inginkan di blok ini, tetapi pastikan kita menghentikan fungsi agar nanti dapat
digunakan.
Sebagai fungsi generator, jadi kita bisa melakukan sesuatu seperti loop for dan mengatakan item dalam fungsi gen dan memberikannya
semacam parameter.