Master thesis proposal: "Web Performance Optimization: Analytics"

published on December 3, 2009

This is the brief version of my actual master thesis proposal, which is attached in PDF format.

Introduction

My bachelor thesis was about making Drupal web sites load faster. 80 to 90% of the response time (as observed by the end user) is spent on downloading the components of a web page. Therefor this is also the part where optimizations have the largest effect.

To be able to prove the positive impact of optimizing the loading of the components of a web site — thereby proving that the work I was going to have done had a positive impact — I researched existing page loading profiling tools. Episodes (which refers to the various episodes in the page loading sequence) came out as a clear winner.

Also as part of my bachelor thesis, I wrote a simple Drupal module1 that could create simple charts to compare the average page loading time per day per geographic region.

Despite its obvious (intended) lack of optimizations, it was sufficient to prove that File Conveyor2 when integrated with a Drupal web site and thus providing CDN integration for that web site, had a positive impact: the test web site consistently loaded about twice as fast, especially for visitors with slower internet connections, such as visitors from Brazil. Without this proof-of-concept implementation, I would never have been able to prove the positive impact on performance.

Context

More and more companies are paying attention to page loading performance. Notable recent proposals include SPDY (a proposed new version of HTTP, with much better performance characteristics), Resource Packages (zipping several resource files together into one package, to reduce the number of requests), Web Timing (a proposed specification to integrate parts of Episodes’ functionality directly into the browser, to allow for more accurate and more complete measurements).
To top it off, Google is almost certainly going to include page loading performance (“page speed”) as a ranking factor (they’ve already included it in Webmaster Tools and are providing a faster DNS service, Google Public DNS).

Problem

Simply implementing all known tricks is not enough, because using a CDN might speed up your web site for half your visitors and slow it down for the other half — although that’s an extremely unlikely scenario. That’s why you need to be able to do Continuous Profiling (cfr. Continuous Integration).

Continuous Profiling means that you are continuously monitoring your real- world page loading performance: you must track the page loading characteristics of each loaded page! That by itself is easy: all it requires is to integrate Episodes with your web site. The actual problem lies in analyzing the collected data. To be able to draw meaningful conclusions from the collected data, we need to apply data mining techniques as well as visualizing the conclusions that are found.

So what I think is needed, is something like Google Analytics, but for page loading performance instead of just page loads.

Proposal

So that is exactly what my proposal is: an analytics suite for tracking page loading performance. An application that can automatically extract conclusions out of Episodes logs and visualize them.

Update — accepted!

Great news, my master thesis proposal has been accepted! My promotor will be professor Jan Van den Bussche, whom is a well-known researcher and an excellent speaker. He has many, many publications on query optimization, data mining and related fields in theoretical computer science.

After this semester’s exams (which will be in January), we will discuss the details. If you’re For more details, see the full version in PDF format. (The LyX file is also available.)


  1. The Episodes module

  2. File Conveyor is the daemon that I wrote to automatically sync files to any CDN, regardlesss of the file transfer protocol used. 

Comments

Nick's picture

Wim, I wish you the best luck in getting this approved as a master thesis subject. Hoping that the final result will be something that alot of people can take profit from. I’m sure speed and page loading time are already a huge factor in the eyes of consumers, so everything to improve that benefits everybody directly and indirectly!

I’m expecting nothing else then great work from this and I’m sure you will be able to do it!

Good luck

Wim Leers's picture

Wim Leers

Thanks John! I have no doubt it will be challenging, but hopefully it’ll be actually interesting and useful in practice as well :)

Xavier's picture

Nah, I’m interested in a whole bunch of disciplines -). Maybe I’m not able to dig as deep into some of them as I would like to, but learning something along the way is always a benefit, no? =].

Anonymous's picture

Anonymous

This would rock when integrated with piwik, don’t you think?

Wim Leers's picture

Wim Leers

Thanks for mentioning that! I’ve been pointed at piwik before, but had totally forgotten about it. Are there more of these projects you can point me to?

Integration with “normal” web analytics would definitely be very useful. I’m not sure if it will be doable given the time constraints, but I’ll definitely try! :)

J. Collins's picture

Congrats on getting your Masters thesis accepted! It’s a very interesting subject. I work on analytics too (next-gen data mining + visualization). Page loading performance isn’t a parameter we have looked into, but it’s a great idea to measure its impact. Anyways here our stuff: http://www.data-applied.com.

Jackson's picture

Looks really interesting especially if, like Google Analytics, your ‘web performance analytics’ will be free and accessible to the masses.

Wim Leers's picture

Wim Leers

Well, it will definitely be free since it will be open source. I hope it’ll be good enough (in terms of performance, UI and requirements) so that it will be accessible to the masses.

My goal is as for my bachelor thesis: make something that is actually useful.

Thanks for the comment! Since you’re with Aptimize: if you’re interested in providing feedback along the way, let me know!

Aptimize's picture

Hi Wim, thanks, we’re interested in following your progress. Good luck with your research and if you think we can help in any way just get in contact.

Wim Leers's picture

Wim Leers

I will definitely consider at Yahoo Boomerang. But currently, Episodes still looks better. Episodes doesn’t have support yet for the Web Timing spec, but that can easily be added. Boomerang appears to be designed to run tests to measure the potential performance: it measures 1) the RTT and 2) bandwidth and latency. Episodes measures the actual performance of loaded pages. And that’s what matters most.

So, in their current incarnations: - Episodes measures actual page load times - Boomerang measures the network connection

For my thesis, I absolutely need actual page load times. But the information that Boomerang provides, can also be very useful; it can help in deciding where the largest gains can be achieved.

If feasible, I’ll try to help in combining both :)