Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the ways to find bottlenecks in a web application?

Tags:

How do I benchmark the performance of my web applications?

Is there a way to find out the bottlenecks in a web application?

EDIT: I am not asking about any front end tweaks like images, css etc. What I want to know is how to profile the back end of the application so that I will know which methods/queries to modify to increase the performance.

like image 974
Niyaz Avatar asked Feb 05 '09 05:02

Niyaz


People also ask

How do you identify performance bottlenecks in an application?

Identifying Performance Bottlenecks lists hardware classes according to relative access speed, implying that slow access points, such as disks, are more likely to be the source of bottlenecks. However, processors that are underpowered to handle large loads are also likely sources of bottlenecks.

Which tool enables you to identify bottlenecks that exist in code?

A value stream map is a tool for evaluating processes to identify bottlenecks, waste, and improvement opportunities.


2 Answers

Regarding bottlenecks on the application server, you can use a profiling tool to see how much time is spent in each part of your code, how much memory is used, etc. For PHP, webgrind seems to be a popular, GUI-based way of profiling. Something like dotTrace would do the same thing for an ASP.NET app. Note that when it comes to databases, profiling tools like this will only show you which database queries are slow--not why they are slow. For that, you'd need to look into database-specific profiling...

Another aspect of web app bottlenecks is how much time it actually takes a browser to downlad everything (CSS and JavaScript imports, images, etc.) and render the page. There are several companies like Keynote who have bots that will hit your site from all around the world, analyze the performance, and give you recommendations about changes you can make to get the output of your app to the browser and rendered as quickly as possible (e.g., "use gzip compression and put your JavaScript at the end of the page instead of the head", etc.). You can also do this yourslelf on a much smaller scale, of course. For example, Firefox plug-ins like Jiffy and YSlow will do the job.

like image 127
Clint Harris Avatar answered Sep 19 '22 17:09

Clint Harris


For any web app, you can try using the Firebug extension, along with the Yahoo YSlow extension (to Firebug). Really helpful in page performance. http://developer.yahoo.com/yslow/

like image 28
Mark Unwin Avatar answered Sep 17 '22 17:09

Mark Unwin