Anasayfa İletişim RSS
 
Şimdi Üye Ol | Şifremi Unuttum
 
Anasayfa » ASP (63 ders)
 
Sitemizin Performasını Artıralım

Yazar: Mustafa Coşkun  
Eklenme: 17.09.2008   Okunma: 442    Puan: 5   Seviyesi:  İleri
Web uygulamalarımızda sitelerimizin hızı son kullanıcı için oldukça önemlidir. Günümüz internet kullanıcıları için bu zaman 3-5 saniye olarak belirlenmiştir.

Yani sitemiz bu zaman zarfı içerisinde hedef ekranda belirmiş olmalı. Aksi takdirde bir e-ticaret siteniz olduğunu düşünün ve sizin için bir gelir kaynağı, bu gecikme size pahalıya malolacaktır.

İşte bu noktada kullanıcının bağlantı hızını, bilgisayar donanım özelliklerini kontrol etme şansımız yoktur ama kendi yazılımımızda böyle bir şansımız vardır. Yani bir çok iyileştirmeye gidebiliriz. Peki sitemizin performansını artırmak için neler yapabiliriz şimdi bunlara bakalım.

* Uygun trafik limiti belirleyebiliriz.
* Sunucu performansımızı ayarlama şansımız var. (işlemci ve RAM)
* Sunucuda çalışan diğer bileşenler. (Gereksiz eklentiler sunucumuzu yoracaktır.)
* Veri tabanı bağlantımız ve bağlantı şeklimiz. (MSSQL Server, Oracle, MySQL ve tabiki hepsinin farklı bağlantı şekilleri vardır, bunları diğer ASP derslerimizde bulabilirsiniz.)
* Kullanılan dil. Yani VisualBasic mi Perl mi?
* Stored Procedure kullanımı. (Saklı kavramların kullanımı.)
* ASP scriptleri yerine COM nesneleri tercih etme.
* Ve tabiki güzel bir kodlama biçimi.

Bu saydıklarımız akla gelebilecek en bariz olanlarıydı. Biraz daha yakından bakalım bu performans artırım olayına.

ASP Scriptimizin Kapladığı Alan

Sayafalarımız uzun mu yada uzunluktan kastımız ne? Eğer bu şekilde bir kodlama yolu seçtiyseniz site daha başlarken boğulacaktır.
Yani ne kadar çok satır kodlamışsak sunucunun da bize sayfa üretimi doğru orantıda zaman artışına neden olacaktır.

Eğer çok büyük bir proje kodlamışsak nelere dikkat etmeliyiz?

* Sunucu taraflı olarak çalıştırma yoluna gidebiliriz. Yani Visual Basic DLL dosyaları oluşturabiliriz veya ActiveX bileşenleri ile yorumlatabiliriz. Aslında burada ActiveX performans artırımından ziyade yazılımımızın güvenliğinide sağlayacaktır. Çünkü çoğu web sahibinin kendine ait sunucusu yoktur.

* Mantıklı veri servisleri kullanmalıyız. Uzun prosedurler kullanmaktan kaçınmalıyız. Aynı işlevi projemizde bir çok yerde kullanacaksak defalarca yazmak yerine fonksiyonlara bölmeli ve o şekilde kullanmalıyız.

* #include, evet sayfalarımıza eklediğimiz dosyalar ve ebatları siteyi yoracaktır. Bu yüzden bellekte tutturabiliriz. Yada Server.Execute gibi yöntemler kullanabiliriz.(ASP derslerinde bununla ilgili bilgi vermiştim bakabilirsiniz.)

* Response.IsClientConnected bu yapıyı kullandığınıza emin olun yani kullanıcı uzun süre sitede işlem yapmayacaksa CPU meşgul etmesine izin vermeyin.

ASP ve HTML Etkileşimi

Örnek bir tablo açalım.

<table>
   <tr>
    <td>Adınız:</td>
    <td>Soyadınız:</td>
    <td>E-Mail:</td>
    </tr>
   <tr>
    <td><%=RS("Ad")%></td>
    <td><%=RS("SoyAd")%></td>
    <td><%=RS("Mail")%></td>
   <tr>
</table>


if kullanımlı başka bir örnek verelim.

<%
If not Session("VeriTabaniAktif") then
%>
<h1>Veri tabanımıza bağlı değilse.</h1>
<%
Else
%>
<h1>Veri tabanımıza bağlı ise.</h1>
<%
End If
%>


Her iki kullanım şeklinde de ASP performansımız kendini kayda değer bir şekilde fark ettirecektir.

<%
If not Session ("VeriTabaniAktif") then
Response.Write "<h1>Veri tabanımıza bağlı değilse.</h1>"
Else
Response.Write "<h1>Veri tabanımıza bağlı ise.</h1>"
End If
%>


Session Kullanımı

Şüphesiz ASP deki bu olgu büyük bir özelliktir bizim için o yüzden etkili bir şekilde kullanmalıyız. Ama kesin olan şey şudur;
Session kullanımı sunucuyu parçalara bölmektir yani her kullanıcı için bir durum oluşturmak o yüzden kullandığımız veri tiplerine
bakaraktan bunu iptal edebiliriz.

@EnableSessionState = False


Bu nedenlerle session ile yüklü veri kullanımından kaçınmalıyız aynı şekilde gereksiz kullanımından da uzak durmalıyız.

Veri Tabanı Etkileşimi

Web sitemizde bir veri tabanı olması demek otomatikmen site yavaş çalışacak demektir. Çünkü burada binlerce veriden söz ediyoruz. O yüzden nasıl bir bağlantı şekli belirledik ve nasıl bir sorgulama yöntemi kullandık önemlidir.

* Veri tabanımız indekslenmiş olmalı bu bizim lehimize olacaktır.

* Sürekli SQL sorguları yerine StoredProcedure kullanmak performansı olumlu etkileyecektir.

* SQL ifadelerimizi dikkatli seçmeliyiz yani where genel kullanımı ve having kullanımı gibi aynı şekilde join, sort gibi ifadelerde etkin olarak kullanılmalı.

* Yaptığımız işin önem ve büyüklüğüne göre veri tabanı seçmeliyiz yani SQLServer olmalı büyük bir projenin doğru veri tabanı seçimi.(Ben Microsoft ürünleri kullandığım için.)

*OLEDB ve DSN'siz bağlantı şekilleri kullanın, çünkü çoklu bağlantı ve erişimler için idealdir. DAO veya RDO biçimlerinden sakının bunlar daha ziyade tekli erişimler içindir.

*Açtığımız recordsetlere dikkat etmeliyiz herhangi bir güncelleme yoksa sadece readonly olarak tanımlamalıyız yani sadece veri okunsa yeterli olacaktır.

ASP Kodlama Kısmına Bakalım Şimdi

* Boş olarak Session_OnStart veya Session_OnEnd methotları kullanmayın.

* Kullanıcı veri girişlerinde daha çok kullanıcı taraflı doğrulama şeklini kullanın, HTTP gereksinimlerinin yükünü hafifletecektir.

* Nesne kullanımında nesneye gerçekten çok önemli derecede ihtiyaç yok ise <OBJECT> tagları kullanmak Server.CreateObject kullanmaktan iyidir. Nedenine gelince nesne gereksiz bile olsa sunucu onu üretecektir buda gereksiz meşguliyettir.

* OPTION EXPLICIT aktif etmeliyiz. Visual Basic de tanımlanmamış değişkenlerde kullanabiliriz eğer bu metodu kullanmassak sunucu bunlar için değişken üretmek zorunda kalacaktır ama aktif ise zaten değişken olarak algılayacaktır buda performansımıza yansıyacaktır.

* Gerekli olmadıkça Server.MapPath kullanmayın.

Şimdi bakalım, sitemizin son durumu nasıl oldu?

Standartlara göre 10 saniye artı sunucuda %30 luk bir CPU kullanımı kazandık ve saniyede neredeyse 20 sayfa yüklendi. Sistem performansınızı bazı araçlar yardımı ile de ölçebilirsiniz bunlardan önereceğim NetMon ve PerfMon'dur.

Ayrıca Microsoft'un kendine ait testlerine de katılabilirsiniz.
http://msdn.microsoft.com/workshop/server/toolbox/wcat.asp

Eğer tüm bu düzenlemeleri yapmışsanız gerçekten sitenizde gözle görülür bir hız artışı olacaktır.

Kolay gelsin...
 
  • Currently 5.00/5
Değelendirmek için üye girişi yapmanız gerekmektedir
EkleBunu Sosyal Paylam Butonu
Sitemizin Performasını Artıralım Dersini Yazdırın

Bu ders için ilk yorumu sen yap !

Üye olmadan yorum ekleyemezsiniz !


UYARI: SANALKURS'ta yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. SANALKURS'ta yer alan hiçbir makale, yazarından izinsiz başka bir yerde yayınlanamaz. SANALKURS kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu her türlü fikri eser, fotoğraf, resim vb. materyal ve ürünleri kullanamazlar. SANALKURS kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir. Söz konusu haksız kullanım nedeniyle SANALKURS .NET'in hiçbir hukuki sorumluluğu bulunmamakta olup, haksız kullanım nedeniyle SANALKURS.NET'in üçüncü kişilere ödemek zorunda kalabileceği her türlü tazminat ve/veya adli/idari para cezaları ilgili Sanalkurs kullanıcılarından rücu edilecektir.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 68 Ziyaretçi, 14 Üye (1 Gizli)
tataroza, kartal66591, mahir_1, realite34, phphack911, dusmevsimi, hayal_gemisi, plus, elbeye, NEVOVA, ahwet, T_a_s_a_r_i_m, fubo
BUGÜN DOĞUM GÜNÜ OLAN ÜYEMİZ:
grafikrim (23)
Bugün: 352, Dün: 6623, Bu Ay: 25874, Toplam Ziyaret: 1882877, Toplam Üye: 133036, Son Üye: mahir_1
Toplam Ders: 2011, Toplam Yazar: 45, Toplam Dosya: 34, Toplam Link: 55
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz