T-REKLAM

siteperponmans


SİTE PERFONMAS


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...
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol