ASP.NET uygulamalarında performans arttırmak -1

 

1.       Debug özelliğinin ”false” olması.
 
Debug özelliği “true ” olduğu zaman aşağıdaki olaylar meydana geleceği için performans kaybına neden olur.
 
1.       Temporary ASP.NET dosyası içinde fazladan dosya oluşur.
2.       Sayfalar toplu bir şekilde compile edilmez.
3.       Zaman aşımı (time out) dikkate alınmaz. 
               Bu özellik  web.config dosyasından değiştirebileceğimiz gibi;
               <compilation debug="true" />
               Sayfa bazında da değiştirilebilir:
              <%@Page debug=”false”>
 
2.       Sayfada bulunan beyaz boşlukları yok etmek
 
 Bir sayfanın boyutu (Page Size) ne kadar büyükse, kullanıcıya sayfanın cevap verme süresi o kadar artacaktır. Bir sayfada bulunan boşluklarda, sayfanın boyutunu artırmaktadır. Aşağıdaki iki kodu çalıştırdığınız zaman sayfanın boyutunun farklı olduğunu görülebilir.
 
<table>
   <tr>
     <td>
        Bla bla bla…
      </td>
   </tr>
</table>
 
<table><tr><td>bla bla </td></tr><table>
 
Bu kodlar için çok fazla değişen bir şey olmayacaktır. Fakat sayfanızda olması gerekenden daha fazla kontrol varsa bu durum değişecektir. Ayrıca ihtiyaç duyulmadıkça viewstate özelliğinin pasif edilmesi, kontrollerin adının kısa tutulması da sayfanın boyutunu azaltacaktır.
 
 
3.       Validate işlemlerini Client tarafında yapmak.
Önemli derecede güvenlik problemleriniz yoksa validate işlemlerini kullanıcı tarafında yapmak daha doğru olacaktır. Fakat burada dikkat edilmesi gereken bir nokta bulunmaktadır. Validatorler client taraflı çalışması sebebiyle sayfa  servera gönderlimeden önce sayfanın  geçerliliği kontrol edilir ve geçerli ise servara gönderilir. Client taraflı kontroller javascript ile yapılır. Bu işlem ASP.NET  tarafından otomatik olarak gerçekleştirlilir.  Peki browserdaki javascript özelliği kapalı ise  ne olur? Server taraflı bir kontrol yapılmamış ise, validatorler çalışmaz ve istenilmeyen problemler ile karşı karşıya gelinebilir.
Bu problemin çözümü ise aşağıdaki kodu sayfanıza eklemek olacaktır, böylelikle tarayıcının javascript özelliği kapalı isede validatorler çalışacaktır.
Page.Validate();
if (!Page.IsValid) return;
 
4.       Buffer  özelliğini “true ” olarak atamak.
 
Buffer; sayfanın serverda toplu bir şekilde çalışmasını  sağlar ve kullanıcı ile sürekli bir iletişimden kaçınır. Bu özelliği kullanmanın dezavantajı ise; sayfa çok yavaş açılıyorsa kullanıcı sayfa tamamen oluşana kadar bir şey göremez. Bu problemi de biraz hafifletmek için Response.Flush kullanılır.  Response.Flush uzun işlemler bitene kadar kullanıcıya hemen cevap göndermek için kullanılır. Örneğin:
 
Response.Write(“gönder”);
Response.Flush();
Thread.Sleep(5000);
Response.Write(“sonra gönder”);
 
Yukarıdaki kodu çalıştırdığınız zaman önce “gönder” ekrana basılacaktır, 5 saniye sonra ise “sonra gönder” ekrana basacaktır. (Thread.Sleep burada uzun işlemler yerine kullanılmıştır.)
 
Buffer özelliği web.config den değişecebileceği gibi:
 
<pages buffer="true" …>
 

 

 
              Sayfa bazlıda değiştirilebilir.
 
              <%@ Page Buffer = "true" %>
 
              Kaynaklar:
              1. http://blogs.msdn.com/cenkiscan/default.aspx
              2. msdn.com
              3. asp.net

 


Okunma Sayısı:633 05.13.2009