4 Ocak 2012 Çarşamba

XmlSerializer'ın yavaşlığının resmidir

Selamlar,

Internette xml serializer kullanımının yavaş olduğu konusunda birçok makale görebilirsiniz.

Bu durumu, canlı sistemin resmini çekerek göstermek istedim.

Aşağıdaki ekran görüntüsünde serileştirme 5.527 ms sürmüş,

Bu sürenin 1788 ms’si serileştirme işlemini yapacak dinamik assembly’nin oluşturulup derlenmesi ve belleğe yüklenmesinde,

1.300 ms’si schema’yı oluşturmada,

1.951 ms’si difgramı yazmada geçmiş.

 

Gerçek serileştirme işi ise sadece 162 ms sürmüş.

 

Üstelik kaybımız sadece zaman da değil, gereksiz işlemlerde geçen süre boyunca çok değerli olan cpu ve ram kaynakları da harcanıyor.

 

İki sistemin de kendi sistemimiz olduğunu düşünürsek veri alışverişinde gidip gelen data’nın formatını bildiğimiz için örnekte 1.300 ms süren schema oluşturma işlemi tamamen gereksiz hale gelmektedir.

 

Verinin önceki ve şimdiki halinin birlikte gönderilmesi gerekmiyorsa, sistemler arasında veri alışverişinde zaman ve kaynak kullanımını azaltabilmek için DataTable’i xml olarak serileştirmeden önce mutlaka .AcceptChanges() metodunu çağırmalıyız. Böylece Diffgram oluşturmada geçen örnekteki 1951 ms’yi engellemiş oluruz.

 

 

Tarık

 

Hiç yorum yok:

Yorum Gönder