Ini disebut pemuatan lambat karena, seperti orang yang malas, Anda menunda melakukan sesuatu yang tidak Anda inginkan. Kebalikannya adalah Eager Loading, di mana Anda memuat sesuatu segera, jauh sebelum Anda membutuhkannya.
Jika Anda penasaran mengapa orang mungkin menggunakan pemuatan lambat, pertimbangkan aplikasi yang membutuhkan waktu LOOOOONG untuk memulai. Aplikasi ini mungkin melakukan banyak pemuatan yang bersemangat ... memuat sesuatu dari disk, dan melakukan penghitungan dan yang lainnya sebelum diperlukan.
Bandingkan ini dengan pemuatan lambat, aplikasi akan mulai lebih cepat, tetapi saat pertama kali Anda perlu melakukan sesuatu yang memerlukan pemuatan berjalan lama, mungkin ada sedikit jeda saat dimuat untuk pertama kali. Jadi, dengan pemuatan lambat, Anda mengamortisasi waktu muat selama menjalankan aplikasi Anda ... dan Anda sebenarnya dapat menghemat dari memuat hal-hal yang mungkin tidak pernah ingin digunakan oleh pengguna.
Lazy Loading adalah praktik pemrograman di mana Anda hanya memuat atau menginisialisasi objek saat Anda membutuhkannya untuk pertama kali. Ini berpotensi memberi Anda peningkatan kinerja yang besar, terutama jika Anda memiliki banyak komponen dalam aplikasi Anda.
Seperti biasa, Wikipedia memiliki lebih banyak detail.
sumber
Lazy loading merupakan konsep dimana kita menunda pemuatan unit objek pada titik dimana kita membutuhkannya. Dengan kata-kata sederhana tentang pemuatan objek permintaan daripada memuat objek secara tidak perlu. Misalnya jika Anda memiliki kelas "Pelanggan" yang memiliki objek "Pesanan" yang dikumpulkan. Jadi, Anda ingin memuat data pelanggan tetapi objek pesanan ingin Anda tunda hingga aplikasi Anda membutuhkannya.
Di bawah ini adalah video youtube yang mendemonstrasikan bagaimana menggunakan lazy loading, bagaimana kita dapat mengimplementasikan lazy loading dan kelebihan dan kekurangannya.
http://www.youtube.com/watch?v=2SrfdAkwmFo
sumber
Definisi wikipedia Lazy loading adalah pola desain yang biasa digunakan dalam pemrograman komputer untuk menunda inisialisasi suatu objek hingga titik di mana itu diperlukan. ...
http://en.wikipedia.org/wiki/Lazy%20loading
sumber
Istilah lazy loading biasanya digunakan saat berbicara tentang pemeta relasional objek. Jika Anda menggunakan ADO.NET secara langsung, Anda selalu mendapatkan eager loading (yaitu selalu memuat apa yang Anda tentukan).
OR-mappers seperti nHibernate mendukung pengembalian objek proxy yang "diisi" dengan data yang benar hanya ketika Anda mengakses data. Dengan begitu Anda hanya memuat data yang benar-benar Anda gunakan. Ini adalah fitur yang berguna ketika Anda menentukan banyak relasi antara objek yang bisa dimuat dari database, Anda tidak ingin OR-mapper memuat semua objek terkait dan objek yang terkait dengan objek terkait dan seterusnya. Itu bisa mengakibatkan seluruh database Anda dimuat.
Masalah ini dapat dicegah dengan desain model objek Anda juga. (menggunakan agregat dan hanya memuat akar agregat seperti dalam desain yang didorong domain adalah cara untuk menyiasatinya tanpa menggunakan pemuatan lambat).
Pemuatan lambat dapat mengakibatkan atau mapper melakukan banyak akses database kecil alih-alih mengambil semua data yang Anda butuhkan sekali. Ini juga dapat menyebabkan masalah kinerja.
sumber
Berikut adalah contoh dari beberapa kode Python yang saya tulis:
Pada dasarnya, saya memiliki kelas Item yang mewakili item dalam inventaris kami. Jumlah total item yang kita miliki adalah jumlah yang kita miliki ditambah jumlah semua item yang kita pinjam dari berbagai sumber. Angka-angka ini semuanya disimpan dalam database kami, dan tidak ada gunanya menghitung ini sampai totalnya benar-benar diminta (karena seringkali Item akan digunakan tanpa total yang diminta).
Jadi properti total memeriksa apakah bidang _total ada. Jika tidak, maka kode properti menanyakan database dan menghitungnya, lalu menyimpan nilai di bidang _total sehingga tidak perlu dihitung ulang saat diminta lagi.
sumber
Pemuatan lambat: Anda tidak membuang waktu (atau ingatan Anda) dengan hal-hal yang mungkin tidak Anda butuhkan. Lalu saat Anda membutuhkannya, itu membutuhkan waktu lebih lama, tapi itu bagus.
Contoh dari kehidupan: alih-alih benar-benar mempelajari buku frasa Prancis, Anda mempelajari frasa satu per satu, sesuai kebutuhan. Kapan ini masuk akal? Jika Anda hanya akan berada di Prancis untuk waktu yang singkat (yaitu, Anda tidak membutuhkan banyak frasa) atau jika Anda harus segera pergi. Jika Anda berada di sana selama dua tahun dan / atau Anda memiliki waktu lama untuk belajar, akan jauh lebih efisien jika Anda hanya mempelajari seluruh buku frasa di muka (eager loading).
[Terinspirasi oleh Atom seperti yang diajarkan dalam istilah geng oleh Venus di WKRP .]
sumber
Pemuatan lambat adalah istilah yang sering digunakan dalam database untuk merujuk pada konsep memuat bagian dari info yang diperlukan hanya jika diperlukan.
Misalnya Anda perlu memiliki record yang memiliki gabungan beberapa tabel. Jika Anda mengambil semuanya sekaligus, itu akan memakan waktu lebih lama daripada jika Anda mengambil, katakanlah hanya tabel utama. Menggunakan pemuatan lambat, informasi lainnya akan diambil hanya jika diperlukan. Jadi sebenarnya 'pemuatan efisien' dalam skenario tertentu.
Jenis 'pemuatan' lainnya adalah:
sumber
adalah pola Desain.
Pemuatan lambat: Sampai kode Anda memerlukan beberapa operasi yang dilakukan oleh objek tertentu, objek tidak dinilai, dan setelah diinisialisasi, objek tidak menginisialisasi ulang tetapi menggunakan objek yang diinisialisasi sebelumnya.
Ini membuat kode Anda jauh lebih efisien dan membantu mengelola penggunaan memori.
Contoh Aplikasi Lazy loading:
Pemegang Nilai inisialisasi Ghost Lazy
sumber
Beberapa keuntungan dari lazy loading:
sumber
Contoh dari Lazy Loading adalah kotak atau tabel dengan banyak data pada halaman web untuk melihat di mana aplikasi hanya memuat ukuran sudut pandang browser pengguna pada saat itu. Saat mereka menggulir ke bawah untuk ingin melihat lebih banyak konten atau data, lebih banyak data akan dimuat ke dalam tampilan pada saat itu.
Ini menjadi lebih dari pola desain visual / interaksi yang umum juga melalui ajax atau jQuery.
Dan seperti yang disebutkan di atas, kebalikannya adalah Eager Loading di mana Anda tidak mempertimbangkan klien sehingga berpotensi mengalami kinerja hit.
sumber
Lazy<T>
sekarang menjadi bagian dari c # 4.0 - ada halaman bagus di MSDN yang menjelaskan konsep tersebut.sumber
Menurut geeksforgeeks, Lazy loading adalah pola desain perangkat lunak di mana inisialisasi suatu objek terjadi hanya ketika sebenarnya dibutuhkan dan bukan sebelumnya untuk menjaga kesederhanaan penggunaan dan meningkatkan kinerja.
https://www.geeksforgeeks.org/lazy-loading-design-pattern/
sumber