jump to navigation

Why Does Microsoft Ignore Its Own Research? February 16, 2010

Posted by Peter Varhol in Architectures, Software development, Software tools.

I find some of the most fascinating concepts on the Microsoft Research site.  I’ve mentioned in the past that I’m pretty impressed with MapCruncher, and there are a number of other projects in Microsoft Research that have the potential to be invaluable in practice.  Unfortunately, such projects never seem to get the exposure they deserve.

Another such project is Doloto, a tool for speeding up the performance of Ajax applications.  Ajax, if you’re not familiar, is a technology that enables Web pages to accept input and return results without a page reload.  It uses JavaScript, in conjunction with an asynchronous connection with the server, to send inputs and get responses to post to the page.  If possible, it may also do processing on the client, saving the roundtrip time to the server.

The JavaScript that processes the data can be thousands or even tens of thousands of lines of code.  This can by itself be a burden to download, especially upon application startup.  Doloto tries to improve the startup time by reducing the initial application payload.

Doloto might be considered analogous to an operating system, in that it sets up a working set for an application on a client.  It analyzes the application during a “training” period to determine what code is needed to start the application and let users begin using it, and downloads only that code.  Training consists of instrumenting the functions, recording the time stamp of the first execution, then looking for gaps to identify clusters that can be grouped together.

In this manner it identifies the code needed to start up the application and begin use.  The rest of the code is stubbed out of the initial download, then downloaded later to the client either on-demand, or using a lazy loading technique (lazy loading means that it downloads when the system isn’t busy).  To be able to do this, Doloto also refactors the JavaScript code to put functions together if they are to be downloaded together.

Doloto doesn’t necessarily improve performance during execution, but it does provide the perception of overall improved application performance thanks to what it does to make the application download and start up more quickly.

I have to ask why Microsoft keeps such technology in the lab, where it gets almost no attention.  While the company makes research programs available for free download, there is no publicity or push to turn it into a product.  Give it a try.

I would be remiss talking about Web page performance if I didn’t mention Strangeloop Networks, a Vancouver company that sells an appliance for speeding up ASP.NET Web applications.  The innovative thing about Strangeloop is that the hardware itself, essentially a computer with lots of memory, isn’t really the interesting part of this solution.  The company has really smart people who understand in great depth how ASP.NET applications execute.  Their expertise is codified in the appliance software, where it makes decisions on how to process the application for optimum performance.  I’ll write more on how Strangeloop does this in the future.



1. Is Microsoft Cool Again? « Cutting Edge Computing - March 2, 2010

[…] I think there are many cool projects in Microsoft Research, from Doloto to MapCruncher.  But the company chooses to keep these efforts locked up in the lab, making them […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: