Etiketler
Byval-ByRef, Garbage Collector, Püf Noktaları, Performans, Proje Yönetimi, Referans Tipler, String, Yazılım Mimarisi
String Yönetimi
String yönetimi performans gerektiren projelerde üzerinde durulması ve dikkat edilmesi gereken konuların başında gelmektedir. Her ne kadar uygulamalarımızı yayınladığımız sunucuların kaynakları eskiye nazaran oldukça fazla ve bir o kadar konfigurasyonları kuvvetli ise de mükemmeliyetçi bir yaklaşımla performansı maksimize etmek için string yönetimi de göz ardı edilmemelidir.Aşırı string manipülasyonları ( birleştirmeler, çıkartmalar) gereksiz kaynak kullanımına yol açar. Çünkü “string” sınıfı her atama işleminde kendisinin bir kopyasını oluşturur. Daha önceki yazılarımda açıkladığım üzere değer tipliymiş gibi çalışan referans tipli bir değişkendir. (Bkz: “Byval – Byref ” in Değer ve Referans Tiplerdeki Davranış Farklılığı) . Bu da GC (Garbage Collector) a, ayrılan kaynakları serbest bırakması aşamasında ekstra yük doğurur. (Bkz: Tasarımda Göz Önüne Almanız Gerekenler – Performans Arttırma / Etkin kaynak yönetimi)Kompleks String birleştirme işlemlerinizde “StringBuilder” sınıfını kullanınız. Ama eğer tek bir satır üzerinde belirli sayıda ekleme işleme gerçekleştirecekseniz, “+” ya da ”&” operatörünü tercih edebilirsiniz.
ASP.NET uygulamalarında, dinamik olarak HTML çıktısı (özellikle table nesnesi ile verileri düzgün bir formatta göstermek isterken , sayfa içersine gömme ihtiyacınız olan bir javascript kodunu hazırlarken … vb) üretip, bunu sayfada göstermek istiyorsanız, StringBuilder sınıfı yerine, ardışık olarak “Respose.Write” metodunu çağırmayı tercih ediniz. (Bkz: http://msdn.microsoft.com/en-us/library/ms998574.aspx)
ASP.NET uygulamalarında, dinamik olarak HTML çıktısı (özellikle table nesnesi ile verileri düzgün bir formatta göstermek isterken , sayfa içersine gömme ihtiyacınız olan bir javascript kodunu hazırlarken … vb) üretip, bunu sayfada göstermek istiyorsanız, StringBuilder sınıfı yerine, ardışık olarak “Respose.Write” metodunu çağırmayı tercih ediniz. (Bkz: http://msdn.microsoft.com/en-us/library/ms998574.aspx)
Bu konu ile ilgili olarak aşağıdaki yazıları okumanızı öneririm.
Geri bildirim: IIS HTTP Compression – Öneriler « Mehmet Özakan
Geri bildirim: IIS Konfigurasyonu ile Dosyaları Sıkıştırmak (IIS HTTP Compression) « Mehmet Özakan
Geri bildirim: Tasarımda Göz Önüne Almanız Gerekenler / Boxing ve Unboxing Tasarımı « Mehmet Özakan
Geri bildirim: Tasarımda Göz Önüne Almanız Gerekenler / Finalize ve Dispose Tasarımı « Mehmet Özakan
Geri bildirim: JQuery Özelinde İçerik Dağıtım Ağı Kullanımının Önemi ( Content Delivery/Distribution Network – CDN ) « Mehmet Özakan
Geri bildirim: Tasarımda Göz Önüne Almanız Gerekenler – Performans Arttırma / Etkin kaynak yönetimi « Mehmet Özakan