Why live.com is slow...

Michael Schwarz on Sunday, May 14, 2006

Scott Isaac has posted an article some weeks ago why live.com [1] is slow or "What they learned building live.com [2]":

Parsing XML is Slow<em><font size="2">We have also learned that merely parsing the RSS XML can be expensive in the browser. When we parse RSS, we are merely translating it into Javascript structures to be further manipulated. Since our server’s are already normalizing feeds to a standard format, instead of serving the RSS feed directly, we are going to translate the feed directly to JSON (Javascript structures). As a simple benchmark, on my fast developer machine we went from 400ms to parse 150K of RSS to 15ms to "execute" the JSON response.</font></em>

Ajax.NET [3] is working with JSON formatted data since a very early version. I had two problems when using XML: the performance problem and missing (or very different) support in common web browsers. JSON is working in all web browser that can execute JavaScript code. And, why did Microsoft decide to create a new XML scripting language instead of using JSON format to speed up client-side JavaScript code? My expierience is that Atlas live.com is currently only working on fast internet connections with fast clients (maybe running Windows XP with 512 MB ram and a cpu at about 3 GHz). On slow PCs and modem/ISDN connections it is not possible to run these web sites.

There is one more thing I recognized when playing around with live.com. If you click on the refresh icon to update a container showing RSS news your web browser (I tested with Internet Explorer) will be blocked. I didn't had a look inside, but I think the asynchronous call is missing there. So, live.com is not the best web site showing Atlas related developments. I hope Microsoft will show us real web applications that can be used everywhere, on every device,...

Update: Scott Guthrie tells us in a comment below that the slowness of live.com is not comming from the Atlas framework. RSS feeds xml parsing is one of the slow functions from live.com.