mehmetduran.com - Paylaşmak Güzeldir...
Sayfaların Oluşma Sürelerini Hesaplama (HttpModule Kullanarak)
Bu yazımda web sayfalarımızın ne kadar sürede oluştuduğunu HttpModule kullanarak hesaplayacağız ve bu bilgiyi her sayfada göstereceğiz. Bu uygulamayı bloğumda da kullandım ve sayfaların oluşma sürelerini en altta sol tarafta saniye türünden görebilirsiniz. Birçok web sayfasında kullanılan, istatistiksel bilgi sağlayan, sayfaların çalışma hızını, performansını gösteren bir özellik. Bu uygulamayı HttpModule olarak hazırlayıp istediğimiz projeye ekleyip kullanabiliriz. Ayrıca basit bir işlem ile bu module'ü aktif veya pasif ederek çalışmasını kontrol edebiliriz. Şimdi yazacağımız kodlara göz atalım.

Öncelikle zaman ölçmede kullanacağımız Stopwatch sınıfı için kodları yazacağımız bölüme System.Diagnostics kütüphanesini eklemeliyiz. Ardından da aşağıdaki gibi bir kodlama ile sadece sayfaların oluşma sürelerini hesaplayan ve hesapladığı değeri sayfalara yazdıran bir HttpModule oluşturalım.

 
namespace MehmetDuran
{
  public class Zaman : IHttpModule
  {
    public void Dispose() { }
    public void Init(HttpApplication context)
    {
      context.BeginRequest += delegate(object sender, EventArgs e)
      {
        HttpContext Context = ((HttpApplication)sender).Context;
        Stopwatch zaman = new Stopwatch();
        Context.Items["zaman"] = zaman;
        zaman.Start();
      };
      context.EndRequest += delegate(object sender, EventArgs e)
      {
        HttpContext Context = ((HttpApplication)sender).Context;
        Stopwatch zaman = (Stopwatch)Context.Items["zaman"];
        zaman.Stop();
        if (Context.Response.ContentType == "text/html")
        {
          double SaniyeSure = (double)zaman.ElapsedTicks / Stopwatch.Frequency;
          Context.Response.Write("Oluşturulma Süresi : " + SaniyeSure.ToString("F4") + " saniye.");
        }
      };
    }
  }
}
 

Bu şekilde HttpModule'ü tanımladıktan sonra bu module'ün çalışması yani aktif olması için web.config dosyamızda tanımlanması gerekir. Bunun için de web.config dosyamızda gerekli yere aşağıdaki gibi ekleme yapıyoruz.

 
  <httpModules>
    .....
    <add name="ZamanModule" type="MehmetDuran.Zaman"/>
  </httpModules>
 

Web.config dosyasında bir önceki yazımda belirttiğim gibi işlemler yaparak module'lerimizi programatik olarak ekleyebilir ve yönetebiliriz. Bu şekilde sistemin yönetimi kolaylaşır. Ayrıca module'leri devre dışı bırakmak istersek bu şekilde bir kullanım yapmalıyız. Böylece yönetilebilir, detaylı bir sistem hazırlamış oluruz.

Bu kodların çalışır halini bloğumda (her sayfanın sol alt kısmında) görebilirsiniz.

İyi Çalışmalar.
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Ücretsiz Site Araçları Asp.net MVC'de Controller İşlemleri Jquery ile Yatay Accordion Uygulaması Yoğunluk, Yaşanan Problemler Artık Sitemde Ajax Kullanabiliyorum
Yorumlar
Yorum Yaz
RSS Yorum Takibi
Cihangir 20 Ekim Salı 2009 00:40 #1
Merhaba Mehmet bey Ben bu kodları çalıştıramadım yani page_load a metodu çağırmammı gerekiyor biraz yardımcı olurmusunuz tşk.
Mehmet Duran 20 Ekim Salı 2009 20:20 #2
İlk kod bölümünü projede .cs uzantılı herhangi bir dosya içine yazabilirsin. İkinci kod bloğunda yer alan bölümü ise web.config dosyasına eklemelisin. (add kısmını httpmodules tagları arasına) Bu şekilde yaptıktan sonra başka bir yerde (page load, vb.) kod yazmaya gerek yok. Her sayfaya çalışma süresi eklenecektir.
muray suna 31 Ekim Cumartesi 2009 15:42 #3
Arkadaşım paylaşımın için teşekkürler. Peki bu oluşan süreyi sayfada nasıl konumlandırabiliriz.Senin yapmış olduğun gibi sayfanının altına nasıl yerleştirebiliririz.İyi çalışmalar.
Ali TURHAN 31 Ekim Cumartesi 2009 22:38 #4
Mehmet paylaşımların doyurucu katkılarından dolayı teşekkürler.Peki bu sayfa oluşum süresi sonucunu sayfamda nasıl konumlandırabilirim.
Mehmet Duran 01 Kasım Pazar 2009 00:07 #5
@muray, @Ali;
ikiniz de aynı soruyu sormuşsunuz. Burada kodlar html tagı dışına yazılıyor. Bunun için konumlandırmada css kullanabiliriz. Ancak tam çözüm olmazsa da script yardımı ile yazılan değeri alıp herhangi bir elemente yazdırabiliriz. Bunun için benim sitemin kaynağına bakabilirsiniz. (script kodlara da)
Ender 05 Kasım Perşembe 2009 23:55 #6
Merhaba kardeş, gerçekten güzel çalışma ama uğraştım senin sayfadaki gibi istediğim yere konumlandıramadım... Bu konunun Javascript kodlarını da paylaşabilir misin .? Teşekürler, iyi çalışmalar ....
Mehmet Duran 06 Kasım Cuma 2009 00:17 #7
Merhaba. Konumlandırma için script kodlarımı kaynağı görüntüleyerek görebilirsin. Sonucu html tagı dışında bir div elementine yazdırıyorum ve script (jQuery) ile bu elementin değerini alıp, sayfamda konumlandırılmış olan başka bir elemente yazdırıyorum. Tüm bunlara sayfaların kaynağına bakarak ulaşabilirsin.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Başarısızlıklarınız ile soylu bir şekilde yüzleşin, başarıdan farkı kalmayacaktır.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009