Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24478|Yanıt: 2

[Kaynak] C# performans optimizasyonu: Tembellik, gecikmeyle tembel başlatır <T>

[Bağlantıyı kopyala]
Yayınlandı 17.06.2019 16:17:17 | | | |
1. Genel Bakış

Bir nesne oluşturmak çok fazla tüketim gerektirir ve bu nesne çalışma sırasında kullanılmayabilir, bu yüzden her zaman nesneyi yaratmaktan kaçınmak için tembel başlatma (tembel instansasyon olarak da adlandırılır) devreye girer.

Gecikmeli başlatma ise . NET 4.0, öncelikle performansı artırmak, israf edilen hesaplamayı önlemek ve program bellek gereksinimlerini azaltmak için kullanılır. Buna talep üzerine yükleme de denir.

2. Temel dilbilgisi


3. Örneklerle uygulayın

Aşağıdaki kodla bir Öğrenci sınıfı oluşturarak başlayın:

Aşağıdaki kodla bir konsol programı oluşturun:

Hata ayıklama için kırılma noktasını belirledikten sonra, yeni bir noktadan sonra Student'in IsValueCreated değerinin yanlış olduğunu ve değerin değerinin null olduğunu fark ettim



Sonra, Name özelliği çağrıldığında, öğrencinin IsValueCreated değerinin değeri doğrudur ve değer değeri artık null değildir



Koşu sonucu:



Öğrencinin yalnızca İsim özniteliği çıktı olduğunda başlangıllaştırıldığı, yani ilk kez kullanıldığında başlangıllaştırıldığı ve tüketimi azaltma amacına ulaştığı görülebilir.

Bu örnek basit ve <T>tembel kullanımının en temel yoludur. Ayrıca,<T> Lazy'nin aşırı yükleme fonksiyonu olan Lazy<T> (Func<T>) özelliğini belirlemek için bir delege göndererek tembel başlatma nesnesinin özellik değerini ayarlayabiliriz.

Koşu sonucu:



Not: Lazy<T> nesne başlatma varsayılan olarak iş parçacığı güvenlidir ve çok iş parçacıklı bir ortamda,<T> Lazy nesnesinin Value özelliğine erişen ilk iş parçacığı, Lazy<T> nesnesini başlatır ve sonraki erişim iş parçacıkları ilk kez başlatılan verileri kullanır.

4. Uygulama senaryoları

Oluşturulması gereken çok fazla yük gerektiren bir nesne var ve program onu kullanmayabilir. Örneğin, programınız başlatıldığında birkaç nesne örneğini yüklüyor, ancak sadece birkaç örnek hemen çalıştırılıyor. Gereksiz nesnelerin başlatılmasını gerekli nesneler oluşturulana kadar geciktirerek programınızın başlatma performansını artırabilirsiniz.






Önceki:Röportajla ilgili birkaç gerçeği ortaya çıkarın
Önümüzdeki:JCSHELL test aracı için kullanım kılavuzu
Yayınlandı 18.06.2019 18:18:32 |
Tamam, anladım
 Ev sahibi| Yayınlandı 4.07.2023 19:19:55 |
C#'da tembellik konuları nasıl koruyor?
https://www.itsvse.com/thread-10621-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com