Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I measure the response and loading time of a webpage?

I need to build a windows forms application to measure the time it takes to fully load a web page, what's the best approach to do that?

The purpose of this small app is to monitor some pages in a website, in a predetermined interval, in order to be able to know beforehand if something is going wrong with the webserver or the database server.

Additional info:

I can't use a commercial app, I need to develop this in order to be able to save the results to a database and create a series of reports based on this info.

The webrequest solution seems to be the approach I'm goint to be using, however, it would be nice to be able to measure the time it takes to fully load the the page (images, css, javascript, etc). Any idea how that could be done?

like image 727
holiveira Avatar asked Apr 24 '09 21:04

holiveira


People also ask

How do you measure page load time?

Measure Page Load Times Using Google Pagespeed Insights To use this tool, you'll want to first pick a webpage on your site you want to study. You then go to the PageSpeed Insights section and type in the URL of the webpage. The tool will then works its magic and determine how fast the webpage loads.

Which is are the tools for measuring a website loading time?

Google PageSpeed Insights This tool is the most popular one among website owners. You can check the loading time of different stages of a particular webpage.

How can I see the response time of a website in Chrome?

To check what's slowing down your page, open Chrome DevTools by right-clicking on the page and selecting Inspect. Then select the Performance tab and click the Start profiling and reload page button.


1 Answers

If you just want to record how long it takes to get the basic page source, you can wrap a HttpWebRequest around a stopwatch. E.g.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);

System.Diagnostics.Stopwatch timer = new Stopwatch();
timer.Start();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

timer.Stop();

TimeSpan timeTaken = timer.Elapsed;

However, this will not take into account time to download extra content, such as images.

[edit] As an alternative to this, you may be able to use the WebBrowser control and measure the time between performing a .Navigate() and the DocumentCompleted event from firing. I think this will also include the download and rendering time of extra content. However, I haven't used the WebBrowser control a huge amount and only don't know if you have to clear out a cache if you are repeatedly requesting the same page.

like image 66
Craig T Avatar answered Oct 23 '22 08:10

Craig T