Saat menggunakan beberapa objek atau struktur data besar, cara untuk meningkatkan kinerjanya adalah dengan menggunakan pemuatan atau penugasan penundaan (untuk mengimplementasikan). Operasi waktu -untuk -waktu telah dipersingkat mungkin, tidak pernah disadari. Saya menggunakan beberapa contoh untuk menjelaskan bagaimana teknologi pemuatan yang tertunda digunakan di Java, dan memberikan beberapa pedoman yang bisa lebih mudah (digunakan) dan sebagai bagian dari bahasa inti dalam bahasa lain.
Skenario penggunaan adalah untuk menunjukkan ratusan metadata dan objek pengukuran yang layak untuk objek domain melalui JTable. Inisialisasi objek domain kami yang dapat menyimpan dua jenis objek dalam memori, bahkan jika hanya beberapa metadata yang ditampilkan dalam formulir. Dibutuhkan beberapa detik untuk membangun formulir ini, dan (tetapi) kita dapat menerima ratusan (data) lagi. Setelah melakukan beberapa analisis, kami meningkatkan realisasi kami, dan sepertinya ini:
Public Class DomainObject {private final dataparser parser; = Aparser;} string publik getHeaderfield (nama string) {// di sini kami dengan malas parse dan mengajukan peta header (header.isempl ()) {header.addall (parser.header ());} return header.get (name) ;} Public iterable <date> getMeAdeArtValues () {// Sekali lagi malas-muat dan parse data if (data.isempty ()) {data.addall (parser.meurements ());} pengembalian data;}}
Peningkatan ini meningkatkan masuknya waktu tampilan dan secara signifikan meningkatkan (kemampuan) kami dari pemrosesan item data besar kami. Semua beban data hanya terjadi ketika seseorang ingin melihat pengukuran pengukuran dan klik ganda item tertentu.
Semacam Jawa akan ditunda setelah kotak dibongkar.
// malas dan cepat karena operasi pengeluaran hanya akan dieksekusi saat dibutuhkan (acondition () && mahal operasi ()) {...} // pesanan lambat (masih malas ed!) If (mahal operasi () && acondition ()) {. ..}
Kerangka kerja lapisan yang lama seperti hibernasi sering kali default untuk menunda pemuatan karena akses database dan harga transmisi data cukup tinggi dalam keadaan normal.
Sebagian besar fungsi bahasa didasarkan pada tugas penundaan surround. Scala Mixes Fungsi Bahasa berorientasi Objek dan memperkenalkan kata kunci yang tertunda untuk menyederhanakan gaya Java.
Kelas Publik Dom ArinObject (Parser: DataParser) {// Dievaluasi pada akses pertama Private Lazy Val Header = {parser.header ()} def getHeadereld (name: string): s tring = {header.get (name) .getorelse (" ")} // Dievaluasi pada akses pertama malas val mesurementValues: iterable [data] = {parser.meurements ()}}}
sebagai kesimpulan
Menunda pemuatan bukanlah teknologi revolusioner baru, tetapi ini adalah alat yang sangat berguna ketika berhadapan dengan data besar atau sumber daya yang memperlambat. Dalam banyak kasus Anda dapat menggunakannya untuk meningkatkan kinerja atau menggunakannya sendiri.
Itu dapat mengurangi biaya penerapan kode.