Doloto on DevLabs
AJAX web applications bring a variety of rich user experiences to the web, but often those experiences require downloading a lot of code. The result is applications that are frustratingly slow to load and taxing to web servers.
Today we are announcing the availability of Doloto on MSDN DevLabs. Doloto is a tool that makes pages more responsive by decreasing the initial download size of complex AJAX web applications.
Doloto analyzes AJAX application workloads and automatically performs code splitting of existing large web applications. Doloto enables applications to initially transfer only the portion of client-side JavaScript code necessary for application initialization. The rest of the application’s code is replaced by short stubs; their actual function code is transferred lazily in the background or on-demand on first execution. Since code download is interleaved with application execution, users can start interacting with your web application much sooner without waiting to download code that implements features they’re not currently using.
How it Works
Doloto is a standalone client-side tool. Its wizard guides you through the following three steps:
1. Doloto profiles your application. Doloto performs profiling by running a local proxy on your machine that intercepts JavaScript files and instruments them to capture timestamps at runtime for every JavaScript function in a browser-independent manner.
2. Profiling information is used to calculate code coverage and a clustering strategy. This determines which functions are stubbed out and which are not and groups functions into batches which are downloaded together, called clusters.
3. Doloto rewrites JavaScript code. It then saves it to disk so that you can upload it to the server. The entire process happens on your machine, without needing access to the server. This way, you can profile and optimize the JavaScript of a any third-party site without special access to their servers. When you are satisfied with Doloto’s results, you can deploy the rewritten files to the server.
Show Me Some Results!
In our experiments across a number of AJAX applications and network conditions, Doloto reduced the amount of initial downloaded JavaScript code by over 40%, resulting in startup often faster by 30-40%, depending on network conditions. The chart below shows savings in the amount of downloaded JavaScript code across a range of popular web sites required for the initial application loading phase.
Download and try Doloto today, and share your thoughts and experiences on the project’s forum.
Namaste!
Comments
Anonymous
September 05, 2009
Just what I have been looking for!Anonymous
September 07, 2009
This is a wonderful application. Combined with the recent contribution to the Linux kernel, it seems like Microsoft may care about more than glitz after all . . .Anonymous
September 08, 2009
They might want to put this much effort in optimizing their AJAX library that comes with .net - stop it polluting the global namespace so much would be a startAnonymous
September 14, 2009
Hi, Is it dependent upon ur browser in some way. Or it is browser independent. Does it support browsers other than internet explorer. By the way really nice product. Jay Shree Krishna...Anonymous
September 14, 2009
Thanks for the kind comments. Doloto is completely browser-independent. You may use it with IE, Firefox, or any other browser that understands JavaScript. This is because we perform instrumentation through rewriting of the JavaScript code, not anything built into the browser. -BenAnonymous
September 15, 2009
The most time on the most sites we download imagages. The code size is not too much.Anonymous
September 16, 2009
Great idea, unfortunately it's Microsoft proprietary code that runs only in a Microsoft environment.Anonymous
September 16, 2009
@Gilberto: You are on a Microsoft blog. What are you looking for here? Support for Apple or Linux? Goods ideas here are for Microsoft eco-system. :)Anonymous
September 16, 2009
This looks pretty awesome! Does this profile code and optimize for browsers in general or specifically for IE?Anonymous
September 16, 2009
Steve Smith- as Ben Livshits says above, Doloto is browser-independent. Polita Paulus Developer Division MicrosoftAnonymous
September 16, 2009
phuff, It may be browser-independent but to run the tool you still need a Microsoft environment with the .NET framework. That's such a close-minded, proprietary-focused community...Anonymous
September 17, 2009
@Tom you are right...sorry about that. My comment was supposed to be posted on Steve Souders' blog (I'll pay more attention next time ;) )Anonymous
September 21, 2009
Intresting. Trying it out now.Anonymous
September 23, 2009
@Thiago: Again, what are you looking for in a .NET community blog?? Information here is for Microsoft technology and developers. Why is it close-minded? Just because you may program in Linux or Apple does not make you an open-minded person or a part of an open-minded community.Anonymous
September 23, 2009
Can Doloto optimize AjaxToolkit.dll or any other ASP.NET assemblies which generate JavaScript code, such as UpdatePanel? It doesn't look like it, but may be I am missing something.Anonymous
September 23, 2009
@_ivan: Yes, Doloto can be used to optimize the code produced by just about any toolkit or library. In fact, because the code coverage for libraries tends to be lower, Doloto is able to stub out more code than it would be for an app that does not depend on a library. Having said that, we do not provide any special integration with these libraries.Anonymous
October 01, 2009
The idea is very smart, it could help the AJAX programmer a lot.Anonymous
November 20, 2009
Doloto is maybe nice, but the performance of the tool itself is awful :( For one test run, it created a bunch of .doloto files, totaling more than 700 mb in size. Now i'm sitting here patiently about 15 minutes waiting for 'step 3', which presumably would be awfully long, because time spent updating the logfile textbox is O(n^2) for the number of log messages...Anonymous
November 25, 2009
I would like to have comments from people out here about there experience with using Doloto and how much % performance enhancement have you seen after using this tool. I would be requiring this for speeding up my recenlty built ajax based asp.net web application. Looking for your commentsAnonymous
April 09, 2010
What are you looking for here? Support for Apple or Linux? http://www.lvbagmall.com/handbagsforsale.html handbags for sale