May 23 2010

DynaTrace Ajax, Javascript Performans Test Aracı

Tag: Javascript,ToolsM. Cihat Altuntaş @ 9:53 am

High Performance Web Sites kitabının ilk bölümünü okurken aşağıdaki paragrafı okurken yüzüme okkalı bir tokat yemiş gibi hissetmiştim açıkçası.

Most of my web career has been spent as a backend engineer.As such, I dutifully approached each performance project as an exercise in backend optimization, concentrating on compiler options, database indexes, memory management, etc.There’s a lot of attention and many books devoted to optimizing performance in these areas, so that’s where most people spend time looking for improvements.In reality, for most web pages, less than 10–20% of the end user response time is spent getting the HTML document from the web server to the browser.If you want to dramatically reduce the response times of your web pages, you have to focus on the other 80–90% of the end user experience.

Yazar Web sitelerinde harcanan çoğu zamanın aşırı derece kötü performansa sahip değilse Database,Server tarafındaki işlemler,kodlar.. tarafından değil html’in serverdan alındıktan sonra yapılan işlemler tarafından tüketildiğini söylüyordu. Tabi benimde yazar gibi ağırlıklı tecrübem back-end olduğundan bu gerçek beni şaşırtmıştı diyebilirim. Fakat çalıştığım projede bunu yaşayarak doğrulamış olduk.

Html kodunun server tarafından alındıktan sonra browser tarafında işlerden fazla zaman alan şeylerden biride Javascript kodunun yüklenmesi,çalıştırılması.. olduğu için Javascript optimizasyonu ve performans testi daha da önem kazanıyor.Bu konuda bana oldukça yardımcı olan araçlardan biri olan DynaTrace Ajax yazılımından bahsetmeden geçersem hakkını yemiş olurum diye düşündüm. Yazılımın bedava versiyonu mevcut bende bu versiyonu kullandım ve oldukça faydalandım diyebilirim. Özellikle Javascript performans sıkıntılarının belirlenmesinde oldukça yardımcı oldu. Programın şuanda sadece Internet Explorer’a entegre olarak çalışıyor fakat bir sonraki versiyonunda Firefox desteğinin de geleceğini duyurdular. Programın kullanımı oldukça basit ve sitesinde yeride kadar kullanım dökümanı bulunuyor bu yüzden kapsamlı olarak programın nasıl kullanılacağını anlatmayacağım. Programda "Hot Spots" kısmında sayfanızın yüklenirken en çok zaman harcadığı şeyleri görebiliyorsunuz ya da özet kısmında işlemlerin ne kadarının server tarafında ne kadarının client tarafında harcandığını ve bunların kaçının CSS,Resim,Javascript olduğunu grafiksel olarak size kapsamlı şekilde gösteriyor. Aşağıda kendi geliştirdiğim bir projedeki "Hot Spots" kısmından aldığım performans göstergesini görebilirsiniz.

hotspots

Resimde gördüğünüz gibi en fazla zamanı nelerin aldığını gösteriyor. Aşağıda da InitMovieWicket fonksiyonu oldukça vakit almış bunuda bu resmi alırken farkettim bu metodu biraz optimize etmek gerekebilir. :)


Jun 29 2009

Findstr komutu ile Text Arama İşlemleri

Tag: ToolsM. Cihat Altuntaş @ 7:55 am

Windows işletim sistemi kullanıcısı olarak neden Unix tabanlı işletim sistemlerindeki Grep gibi bir aracın bulunmayışından şikayet etmişimdir.Sık sık geliştirdiğiniz bir projede herhangi bir kod satırını, herhangi bir nesnenin hangi sınıflarda, dosyalarda kullanıldığını görmek isteyebilirsiniz.Kısacası kod üzerinde arama yapmak yazılımcıların olmazsa olmaz günlük aktivitelerindendir.

Bu yüzden eğer benim gibi aynı anda .NET, Java gibi birkaç platformda geliştirme yapıyorsanız, bu kod arama işlemini IDE üzerinden yapmak bazen oldukça zahmetli olabiliyor. Hatta bazen geliştirdiğiniz eski kodunuzun IDE’si bile bilgisayarınızda bulunmayabiliyor. Tekrar IDE kurmakda benim gibi üşengeç biri için büyük eziyet.

Buna benzer Windows ortamında kullanabileceğim özellikle komut satırından çalışan bir araç ararken ilk olarak Cygwin aracına rastladım. Bu araç sayesinde Linux ortamını ve araçlarını neredeyse birebir Windows ortamında komut satırı üzerinden kullanabiliyorsunuz. Dolayısıyla Grep gibi faydalı birçok Linux aracı Windows ortamında kullanıma hazır hale geliyor. Cygwin kurulumu biraz uzun olsada getirdiklerine değecek bir araç.

Uzun süre önce bilgisayarımı formatladığım ve açıkcası tekrar Cygwin kurulumuna üşendiğim için başka bir araç arayışına gittim. Bulduklarımdan biri Windows ortamında zaten bulunan Findstr komutuydu.Bu komut ile basit olarak text arama işlemlerini kolaylıkla yapabiliyorsunuz.Grep gibi tamamen Regular Expressions gücünü kullanarak arama yapamasanız da basit olarak Regular Expressions, ve birçok faydalı seçeneği ile text dosyalar üzerinde arama  yapabilmenize izin veriyor.

Findstr ile bu aralar benimde en çok kullandığım aşağıdaki arama ifadesi gibi ifadeler yazabilirsiniz.

Findstr /s /i "import java.util.Date" *.java

Yukarıdaki komutda bulunan “/s” parametresi ile bulunduğunuz dizin ve bütün altdizinler dahil, “/i” parametresi ile büyük,küçük harf farklılığını önemsemeyerek bütün java dosyaları içinde java.util.Date sınıfının kullanıldığı dosyaları arıyoruz.Ardından bulduğu satırları herhangi bir dosyaya ya da ekrana yazdırabilirsiniz. Yazılımcı olarak işimizin büyük çoğunluğu Text üzerine olduğu için Text dosyalar ile oynamayı iyi bilmek işimizi oldukça hızlandırıyor. Bu tarz araçların bütün yazılım geliştiriciler için de faydalı olacağına inanıyorum.


Oct 03 2008

.NET Reflector

Tag: ToolsM. Cihat Altuntaş @ 12:59 pm

Şimdi aslında bu yazıyı hazırlamamın amacı bir sonraki yazımda .NET için bunu kullanarak bazı şeyler anlatacak olmam. O yüzden sonraki konuyu fazla uzatmamak ve Reflector aracının diğer amaçlarla da kullanılması faydalı olabileceği için böyle bir yazı yazmaya karar verdim.

Öncelikle şunu belirteyim yazılım geliştirirken bu tarz araçlar kullanmak oldukça faydalı oluyor. Daha önceden Java kullandığımda da bu tarz araçların yardımına oldukça başvuruyordum. .NET’e geçince de tabi ilk işim bu tarz araçlar aramak oldu ve oldukça güzel bir araç olan Reflector‘e rastladım. Fazla uzatmadan kuruluma geçelim ve ardından bize ne gibi faydalar sağlıyor ona bakalım.

Devamını Burdan Okuyabilirsiniz