SORU
11 Mart 2011, Cuma


Gereksiz atmalarını optimize alabilirim?

Bazı eski kod güncelleme yapıyorum, ve aynı nesneyi tekrar tekrar her seferinde lanse ediliyor birkaç örnek bulduk özelliklerinden birini veya yöntem çağrılmalıdır. Örnek:

if (recDate != null && recDate > ((System.Windows.Forms.DateTimePicker)ctrl).MinDate)
{
    ((System.Windows.Forms.DateTimePicker)ctrl).CustomFormat = "MM/dd/yyyy";
    ((System.Windows.Forms.DateTimePicker)ctrl).Value = recDate;
}
else
{
    (System.Windows.Forms.DateTimePicker)ctrl).CustomFormat = " ";
}
((System.Windows.Forms.DateTimePicker)ctrl).Format = DateTimePickerFormat.Custom;

Hevesim, bu ucubeyi düzeltmek için, ama benim sınırlı zaman verilen etkileyen işlevi veya performans değil, bir şey ile rahatsız etmek istemiyorum.

Merak ediyorum, ne gereksiz atmalarını bu derleyici tarafından optimize kaçıyor? Bu basitleştirilmiş bir örnek üzerinde ıldasm kullanarak kendimi bulmaya çalıştım, ama IL aşina olmak değil, sadece daha karışık sona erdi.

GÜNCELLEME

Şimdiye kadar, uzlaşma gibi bir)hayır, atmalarını değil optimize edilmiş, ancak b)süre orada muhtemelen bazı küçük performans vurmak gibi bir sonuç değil, büyük olasılıkla önemli, ve c)gereken düşünün böyle zaten. Eğer vaktim olursa bir gün bu düzeltme, sorunu çözüm tarafta yer var. Bu arada, onlar hakkında endişelenmenize gerek olmayacak.

Herkese teşekkürler!

CEVAP
11 Mart 2011, Cuma


Sürüm oluşturma, oluşturulan makine kodu ile ilgili bir spot check 86 Jetta döküm optimize uzakta olmadığını gösteriyor.

Büyük resme bakın burada bile var. Bir denetimin özelliklerini atadığınız. Yan etkileri bir ton var. DateTimePicker durumunda, atama mesaj yerel Windows Denetim için gönderilen sonuçlar. Sırayla uzak mesaj at egzersizi. Döküm maliyetini yan etkiler ve maliyet göz ardı edilebilir. Atamalarını yeniden asla sadece bir yüzde bir kısmını yaptı hızda belirgin bir fark, daha hızlı yapacak.

Devam edin ve tembel bir Cuma öğleden sonra kodu yeniden yazmak. Ama sadece okunabilirlik için bir yıkım olur çünkü. Kötü okunabilir bir C# da kötü optimize makine kodu üretir kod tamamen bir tesadüf değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Kat Krazy

    Kat Krazy

    12 Kasım 2010