Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 24478|Jawab: 2

[Sumber] Pengoptimalan performa C#: Malas menginisialisasi malas dengan <T>penundaan

[Salin tautan]
Diposting pada 17/06/2019 16.17.17 | | | |
1. Gambaran Umum

Dibutuhkan banyak konsumsi untuk membuat objek, dan objek ini mungkin tidak digunakan selama berjalan, jadi untuk menghindari pembuatan objek setiap saat, inisialisasi malas (juga disebut instansiasi malas) ikut berperan.

Inisialisasi tertunda terjadi pada . NET 4.0, yang terutama digunakan untuk meningkatkan kinerja, menghindari komputasi yang terbuang, dan mengurangi persyaratan memori program. Ini juga bisa disebut pemuatan sesuai permintaan.

2. Tata bahasa dasar


3. Terapkan dengan contoh

Mulailah dengan membuat kelas Siswa dengan kode berikut:

Buat program konsol dengan kode berikut:

Setelah mengatur titik henti untuk penelusuran kesalahan, saya menemukan bahwa setelah new, nilai IsValueCreated Siswa adalah false dan nilai nilai adalah null



Kemudian, saat memanggil properti Name, nilai IsValueCreated siswa adalah true, dan nilai nilai tidak lagi null



Hasil jalan:



Dapat dilihat bahwa Siswa diinisialisasi hanya ketika atribut Nama dikeluarkan, yaitu diinisialisasi saat digunakan untuk pertama kalinya, sehingga dapat mencapai tujuan mengurangi konsumsi.

Contoh ini sederhana dan <T>cara paling dasar untuk menggunakan Lazy. Kita juga dapat menggunakan<T> fungsi overload Lazy, Lazy<T> (Func<T>), untuk meneruskan delegasi dengan nilai yang dikembalikan untuk mengatur nilai properti objek inisialisasi malas.

Hasil jalan:



Catatan:<T> Inisialisasi objek Lazy aman untuk utas secara default, dan dalam lingkungan multi-utas, utas pertama yang mengakses<T> properti Value objek Lazy akan menginisialisasi<T> objek Lambat, dan utas akses berikutnya akan menggunakan data yang diinisialisasi untuk pertama kalinya.

4. Skenario aplikasi

Ada objek yang memiliki banyak overhead untuk dibuat, dan program mungkin tidak menggunakannya. Misalnya, program Anda memuat beberapa instans objek saat startup, tetapi hanya beberapa instans yang perlu segera dieksekusi. Anda dapat meningkatkan performa startup program Anda dengan menunda inisialisasi objek yang tidak perlu hingga setelah objek yang diperlukan dibuat.






Mantan:Ungkapkan beberapa kebenaran tentang wawancara
Depan:Panduan pengguna untuk alat uji JCSHELL
Diposting pada 18/06/2019 18.18.32 |
Nah, mengerti
 Tuan tanah| Diposting pada 04/07/2023 19.19.55 |
Bagaimana Lazy di C# menjaga utas tetap aman
https://www.itsvse.com/thread-10621-1-1.html
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com