300x250 AD TOP

Search This Blog

Paling Dilihat

Powered by Blogger.

Friday, July 20, 2012

Website Performance Loading and Optimization

I've recently been tasked with writing a high performance website, it needed to have all the bells and whistles, cached database access, scripting, custom htmls etc'.

I've written a basic implementation and started working on performance, first I needed a load.

I've found Apache JMeter, one of the best web load testing programs I've worked with so far, I could send a custom HOST header, do multiple logins, multiple cookies, basically test every page on the website for problems.

Taken from http://www.java-forums.org/blogs/jmeter/

But the results don't tell you much, if your home Action is slow, cool, I can see it, if the application takes 100% CPU, cool, I can see that too, but what's causing the slow downs?

This is where Visual Studio's Performance Profiler comes in.

My project has a lot of dependent projects, its ok if you see a WCF call is slow, but seeing exactly what's executing slowly is even more valuable.

At first I've tried using the Wizard, but every time I started profiling Visual Studio would hang, my solution? Attach/Detach, once the project has started with all its components also running, right-click on the Profiling session, Attach-Detach and attach the desired projects, then on Modules view, you can drill down application->method->method until you know exactly what's going on.

For example, when you're looking at Functions section, it shows you all the functions it caught, Inclusive is if the method is up in the stack and exclusive is if that specific method is the slow part, look at both, it will give you an overview on the problems, the exclusive will show you specific methods and the inclusive will show you certain paths in the execution tree which are slow in your applications.

I can't thank Microsoft enough for including this great tool, it saved me countless hours and helped me deliver a high quality and performing code.