Monday, May 13, 2013

Testing Website Speeds with Google Maps

The Worldwide Website Speed Test allows you to test how fast a webpage loads from anywhere in the world.

To test a website you just need to enter its URL in the search box and click on the Google Map. The app then uses a huge network of proxies to test the loading speed and displays the results beneath the map. You can select multiple locations on the map and compare the speed of loading the website at different locations across the world.

From the same developer as the Worldwide Website Speed Test comes the Zip Code Catcher, a great Google Maps based application for finding and downloading all the zip codes for a specific area.

The map includes two drawing tools. A circle tool allows the user to quickly define a radius around the desired location. However, if you need to define an area more precisely, a polygon tool allows you to plot out an area more accurately.

Once you have defined the desired area on the map you just need to click the download button and you can download a CSV of all the zip codes in your selected area. The downloaded spreadsheet includes all the zip codes and the city, state, latitude and longitude, the population and even the distance from the center of your selected area for each zip code.


barryhunter said...

Pitty the map tool is a fake.

I thought suspicious that it seems to have 'testing locations' in many parts of the world. Greenland? Cape Verde? Even the Marshell Islands.

Didn't realise it April 1st!

I looked with the Developer tools in Chrome, and it never passes the clicked location back to the server (it does use the maps API geocoder to get a address/country tho).
(it does however contact the server to find the location of the target website - and to get the thumbnail)

It just uses some ripped code that appears to be from a game firing missiles. It just times how long the "Missile" takes to reach the location, and reports that.

Look at the draw_request_path_line(), move_missiles() and finish() function in the page source.

Fun demo, but not a real tool.

antioch1st said...

Had to take it down for a seconds, bc proxy limit was reached. It will be back working in moment.

And location is not exact, but there are about 2000 locations and it uses closed one to you.

barryhunter said...

Hmm, slight clarification, on closer inspection it is timing the time it takes the server to generate the thumbnail.

It still doesnt send the actual click location to the server, so it cant actully time the realisticly, because it doesnt know the location its meant to be for.

(I also checked my server logs, all requests come from the same IP address apprently in OH, USA. One request per URL - ie not one per location)

antioch1st said...

Barry your killing me. I had to revert code a second ago to a working version w/o real timing test, bc it was breaking tool when too many people were using it.

You were correct the first time in regards to that code. Give me a sec and you will be happy w/ it.

barryhunter said...

Ah, hi antioch1st,

Ok, so how does it work? get_website_image sends the URL of the site being 'tested', but no locational information. No coordinates, no address. How can the server ask the apprirate 'proxy' to run the test?

Also my server has only received requests from one IP address. Surely results should be coming from various IPs?

(and there should be multiple requests, not just one)

I'm more than happy to be proved wrong, just cant see how this is working for real.

barryhunter said...

ok, so why not just say 'server over loaded - please try later' - rather than sending fake results?

antioch1st said...

Alright Barry, I Just rolled back to something I knew would work rather than be completely broken. Thought it would go unnoticed till it was fixed :).

Take a look now. And let me know what you think. You should be able to see whats going on from code. May be a few issues still, but I'm working them out.

BTW - the Missile code I snagged is from a google maps game I'm working on, that will launch b4 to long.

antioch1st said...

Proxies are back up and this tool is working properly now. It works by routing a http requests through a proxy nearby the location you clicked on the map. It then checks the time it takes to get a response from that proxy from your server. If you are testing it you will see your server get a hit a few times from a proxy near where you clicked.

Since there is some variance when using proxies it makes a number of requests and gets the average speed for higher reliability.

If for some reason the proxies are hanging up, it just returns an estimate (not actual speed) based on the distance of the proxy server to your web server, it will let you know if it using the estimate rather than real data.

Just FYI the green arrows are just for graphical fun and don't portray real timing or trace route. I might implement actual trace route at some point.