InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Google Calls for a Joint Effort to Speed Up the Internet

Posted by Abel Avram on Jun 24, 2009

Sections
Architecture & Design,
Development,
Operations & Infrastructure
Topics
Performance & Scalability ,
Internet ,
Architecture
Tags
Community ,
Google

After open sourcing Page Speed a few weeks ago, Google has launched a web site in an attempt to find ways and push the speed up process of the entire Internet. Google shares research data, web site speed optimization tutorials, recorded presentations on performance, links to lots of performance optimization tools, and a discussion group inviting everyone to share ideas on how to make the web faster.

Google Research has conducted a study on how page loading speed affects the number of searches (PDF) users perform over time. They introduced several controlled delays into the response:

gr1

After introducing the delays and monitoring the users for 4-6 weeks, they noticed the following drops in the number of searches:

image

While a 0.5% drop might not mean much for others, Google assures us that such a drop means a lot to them because there is a direct connection between the number of searches performed by users, the number of Ad Clicks displayed and the revenue. Beside speeding up its own web servers, Google wants the entire Internet to speed up considering that this process will have a positive outcome for them.

Google considers that besides bandwidth limitations there are several factors contributing to a relatively slow Internet:

  • Websites that do not follow best practices in web development and are unnecessary slow
  • Web servers are often not optimized for speed
  • Several internet protocols were designed 10/15 years ago, when websites and web applications were different
  • Browsers only recently started focusing on speed. Many Internet users are using slow browsers

How fast should the Internet be for Google? Move from one page to another as fast as turning pages in a glossy magazine. Allow video and graphical content flow as fast as necessary. Live collaboration between users not being hindered by the connection, including mobile ones. For that, Google wants to see HTML improved, and it is already being done with HTML 5, but they also would like to improve or even change HTTP and TCP with something better, a change that is quite difficult to implement considering the huge investments done so far in current infrastructure.

In an attempt to teach others how to speed up their sites, Google provides a number of tutorials:

They have also shared a list of tools coming from various sources:

Page Speed. Page Speed is an open-source Firefox/Firebug Add-on. Webmasters and web developers can use Page Speed to evaluate the performance of their web pages and to get suggestions on how to improve them.
AOL Page Test. AOL Page Test is an open source tool for measuring and analyzing web page performance using Internet Explorer.
Cuzillion. Cuzillion is a tool for quickly constructing web pages to see how components interact. Browsers have unexpected behavior in everyday situations. Sometimes the behavior differs across browsers. Cuzillion lets you observe these behaviors and share sample pages with others.
Fiddler 2. Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.
Firebug. Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
Hammerhead. Hammerhead adds a tab to Firebug for measuring the load time of web pages.
httperf. Httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance. The focus of httperf is not on implementing one particular benchmark but on providing a robust, high-performance tool that facilitates the construction of both micro- and macro-level benchmarks.
HttpWatch. Http Watch is an HTTP viewer and debugger that integrates with IE and Firefox to provide seamless HTTP and HTTPS monitoring without leaving the browser window.
IBM Page Detailer. IBM Page Detailer is a graphical tool that enables Web site developers and editors to rapidly and accurately assess performance from the client's perspective. IBM Page Detailer provides details about the manner in which Web pages are delivered to Web browsers. These details include the timing, size, and identity of each item in a page.
JSLint. JSLint is a JavaScript program that looks for problems in JavaScript programs. It is a code quality tool.
JSMin. JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files.
Microsoft VRTA. The Visual Round Trip Analyzer tool helps web developers and testers visualize the download of their page, identify best practices and changes that improve web performance. VRTA examines the communications protocol, identifying the causes of excessive round-trips, and recommending solutions.
mon.itor.us. mon.itor.us provides personalized Ajax dashboard interface, checks server performance and availability, generates uptime reports, tracks visitors, checks CPU, memory and other systems resources, and alerts its users in case abnormalities are detected.
OOCSS. OOCSS allows you to write fast, maintainable, standards-based front end code.
Pylot. Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics.
Smush It. Smush it uses image format specific non-lossy image optimization tools to squeeze the last bytes out of your images - without changing their look or visual quality. You'll get a report of how many bytes you can save by optimizing your images and all the changed images as a single zip for download.
Wbox. Wbox aims to help you having fun while testing HTTP related stuff. You can use it to perform many tasks, including the following: benchmarking how much time it takes to generate content for your web application, web server and web application stressing, testing virtual domains configuration without the need to alter your local resolver, checking if your redirects are working correctly emitting the right HTTP code, testing if the HTTP compression is working and if it is actually serving pages faster, use it as a configuration-less HTTP server to share files.
Yahoo! YSlow. YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. YSlow is a Firefox add-on integrated with the Firebug web development tool.
YUI Compressor. The YUI Compressor is JavaScript minifier designed to yield a higher compression ratio than most other tools.

Finally, the Google Speed web site contains a discussion group where others can share their own techniques and ideas used to speed up their portion of the web.

Related content on InfoQ: Google Has Open Sourced Page Speed.

No comments

Watch Thread Reply

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.