Reputation: 36816
I am building a web app and one of the tasks is to improve performance. I want to know of any tool that can be used for timing web pages.
For example I need to be able to document to the managers that a particular page did take 5 seconds to load and now takes 1 second.
Are there any tools that can help with this? It is not a publicly accessible web site and is written in ASP.NET MVC.
Upvotes: 1
Views: 318
Reputation: 10356
I use fiddler to test the performance of my web pages.
Though it ignores localhost requests by default, you can make it work even for those using various tips available online like here or here
Usually for any request, it will give you timing information broken down like below
ACTUAL PERFORMANCE
--------------
ClientConnected: 11:02:55.765
ClientBeginRequest: 11:02:55.765
ClientDoneRequest: 11:02:55.765
Gateway Determination: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
ServerConnected: 11:02:55.765
FiddlerBeginRequest: 11:02:55.765
ServerGotRequest: 11:02:55.765
ServerBeginResponse: 11:02:55.890
ServerDoneResponse: 11:02:56.546
ClientBeginResponse: 11:02:56.546
ClientDoneResponse: 11:02:56.546
Overall Elapsed: 00:00:00.7812500
EDIT: You can also save an entire session as an session archive - which can be used to document the results of a particular sequence of events and the achieved performance. This can be used as "documentation" to impress your managers and to keep track of the performance improvements.
EDIT : You can also save Fiddlers session as a Visual Studio web test. This helps in creating the tests especially if you are using Visual Studio Web Testing tools
Upvotes: 2
Reputation: 75982
Chrome and Safari can measure the page load time with their development tools. Fiddler also can do this, albeit it does not give you as nicely aggregated picture. I suspect Firebug also can do this, but I never used it, so can't vouch for it.
Note that these are for manual measurement. There are more sophisticated tools, if you want to do automated perfect testing that will run multiple scenarios, aggregate the data and compare it to a baseline to give you a delta of the changes. If you live in Microsoft world, you can Use Visual Studio integrated test tools, or the standalone Web Capacity Analisys Tool. If you live in the open source world, take a look at Apache JMeter. There are also number of third-party tools, showing when you search for "web page performance testing".
Upvotes: 0
Reputation: 7576
I handle this by logging response times in the access log. Apache supports this, so you could proxy through a proxy server. IIS may support the same in a custom log format. However, logging on the server side only covers how fast the page is delivered.
Perceived response time is highly dependent on proper HTML and CSS. Providing sizes for included content can speed rendering time for the page significantly. It can allow the visible portion of a page to render and stabilize before the page had finished downloading.
Download times for included content such as CSS, script libraries, and images can also have a significant impact on perceived response.
Client side web testing tools may provide a better solution for this kind of effort. Done correctly, they will also demonstrate that you haven't broken the web site.
Upvotes: 0