Instant email: how we made Hotmail 10x faster

Instant email: how we made Hotmail 10x faster

  • Comments 50
  • Likes

We announced last week a new version of SkyDrive, in which SkyDrive was redesigned from the ground up to have great performance on modern browsers. Like the SkyDrive team, we’ve also been hard at work on ways to speed up Hotmail.

We measured how fast our Hotmail pages loaded all over the world and how we compared to our competitors in a standardized environment, and then we dug deep into the numbers. In some ways, we were pretty good, but a number of very common actions were just too slow.

Making Hotmail fast

We trimmed content on our pages to speed up download time, and we eliminated a network round trip on login for further gains. But our goal was to make Hotmail feel instant, and we knew that speeding up downloads would only get us so far towards that goal. Even with today’s broadband speeds, the network is the bottleneck, and we needed to keep our customers from experiencing that latency.

The approach we decided to take was to get user data closer to the browser, and when the data is not available on the browser, get it there more efficiently, without the user noticing. We also decided to take advantage of modern browsers like Internet Explorer 9 to be more app-like, by doing more work in the browser and less on the server.

We identified three specific techniques to follow: caching, preloading, and asynchronous operations.

Caching

The old Hotmail requested fresh data from the server every time it was needed. For instance, when you signed in to the inbox, Hotmail would ask the server for the latest message list. When you opened and then closed a message, we would make you wait while we asked the server for the message list again. Similarly, if you opened that same message again, we would make you wait while we retrieved the message.

The new Hotmail is more app-like, because we now cache information after it’s downloaded. The message list is stored in the browser’s DOM (Document Object Model), so when we need it, we don’t have to download it. We also cache the email that you’ve read, so we can re-open the message nearly instantly.

When caching data, the trick is in knowing when to update it. In the new Hotmail, our server detects when your account changes – for instance, when a new message is delivered – and it sends a notification to the browser. The browser then retrieves the updated data, so your inbox is never out of sync.

Finally, when you close your browser or sign out of Hotmail, the cache is cleared so that data is never left behind to compromise your privacy.

Pre-loading

Our analysis of usage patterns of Hotmail showed that when customers sign in to their inbox, the first thing they’re likely to do is read the subject lines of new mail to decide which messages to open. In the new Hotmail, we use that time to download and cache the first few messages so they’re ready when you need them. That way, when you choose a message to open, you don’t have to wait for the download.

Our analysis also showed that when customers open an email message, they’re very likely also to view the one that follows it. So, in the new Hotmail, while you’re reading one message, we automatically download and cache the next one in the list.

We’re continuing to fine-tune our design to make this as efficient as possible, so not all users have this feature turned on by default yet.  If you don’t see this feature and you’d like to turn it on for your account, you can do so from an options page.

In addition to pre-loading messages, we also  preload code and data in the browser. For instance, we know that most Hotmail sessions involve sending email. So while you’re reading and deleting email, we download and cache the JavaScript and HTML code and address book data that you need for composing a new email message. When you click New or Reply, we just swap in the cached Compose code and data, and it’s ready instantly.

An interesting design problem we faced was to figure out how to download content without interfering with bandwidth or browser threading utilization. If done poorly, the app can feel non-responsive. We’ve separated and ordered the downloads to make the browser responsive, and to make the most important user tasks fast and available as early as possible. This is an area that we will continue to work on for even more gains in the future.

Considering the large number of Hotmail users, other challenges we faced were keeping our servers from being overloaded, and keeping the service cost efficient. We’ve had to invest in squeezing out more throughput from our storage system—we’ll describe how we did this in a future post.

Asynchronous operations

The old Hotmail used to wait for server responses before updating the UI. For example, when you deleted an email message, Hotmail would call the server and tell it to delete the message, and then wait for a response from the server before updating the message list. This made Hotmail feel slow, because you felt you had to wait for the operation to complete before you could continue working.

The new Hotmail no longer waits for server responses for most operations before updating the UI. In the new Hotmail, when you delete a message, Hotmail updates the message list instantly, and you can resume working right away. In the background, client code queues up actions and calls the server to delete the email. So email still gets deleted, but without the wait.

This approach also makes the client code more resilient to spikes in server activity and improves performance for users who have low bandwidth/high latency connections.

Finally, we also looked at the great improvements made by the IE9 team and invested in ways to make Hotmail run even faster on IE, such as using IE9 Standards Mode.

Results

We wrapped up these changes a few weeks ago, and just finished releasing the code to all our users (with the exception of the pre-loading feature, which, as mentioned above, is not yet turned on by default in some markets). So, what did we accomplish? The data speaks for itself:

 

Hotmail
Dec ‘10

Hotmail
June ‘11

Open message

3.3 seconds

0.18 seconds

Delete message

3.1 seconds

0.14 seconds

Compose new message

4.3 seconds

0.20 seconds

Data represents 75th percentile measurements from hundreds of runs of an automated test against a production server. Bandwidth is 300kb down/75 kb up/150ms latency, and browser is IE9. Your results may vary.

Here’s a video that shows it more clearly:

But, we’re not done. We believe performance is a feature, and we’re committed to making Hotmail as fast as possible. We will continue to find more ways to make Hotmail load faster, and we’re also working on ways to improve the efficiency of even more of the most common actions.

Enjoy the improvements, and watch this space for more to come.

Dick Craddock
Group Program Manager, Hotmail

50 Comments
You must be logged in to comment. Sign in or Join Now
  • steph-b
    1 Posts

    I have signed up to this forum only and specifically to join the growing number of users who want you to bring back the Remember Me function on signing in to Hotmail. Neither my husband nor I can be bothered with single user sign-codes or whatever they are. Please just bring back what worked very well before. Thanks.

  • markiz
    40 Posts

    @Dick Craddock

    Unfortunately, activesync does not work right on my wp7 (omnia). As i said, read status and deletion does not sync to the server.

  • langware
    154 Posts

    @Dick Craddock,

    The following response from a Windows Live Solution Center moderator (Windows Live Jhaycee C) was posted today in reply to the disappearance of the "Remember Me" option from the Sign-on page:

    "I’m sorry for the inconvenience. There's a new update regarding this issue.“Remember Me” option on Sign In page for live accounts is no longer available by design. This ensures a more secure way to log in, preventing unauthorized access to your live ID accounts."

    Here's the page containing the above post:

    windowslivehelp.com/thread.aspx

    Customers have received various replies from the WLSC moderators regarding the disappearance of the "Remember Me" option. Can you confirm that the "Remember Me" feature has been officially removed from the Sign-on page?

    If true, and if the rationale for removal was to prevent "unauthorized access," then how do you explain the "Keep Me Signed-in" option that still exists? Surely having the option to stay connected presents more security risk (especially for public and for shared computers) than merely remembering ones email address?

    What about the disappearance of multiple accounts on the sign-on page? Has that feature also been officially removed?

    I'm all for improving Hotmail's security .... are you saying that the "Remember Me" option was Hotmail's highest priority security risk? Even ahead of implementing two-factor authentication (which has been discussed since Google implemented theirs in Sept 2010).

    It would have been nice if you had written the promised blog (explaining the recent changes to the Sign-on page) BEFORE those changes were implemented (or simultaneous with those changes). Customer focus!!!!!

  • EFWong
    1 Posts

    Performance may be better but UI responsiveness seems to have gotten worse. I usually click the Junk folder (if it shows anything new) as soon as the Hotmail page loads and find that I have to click it more than once now for the click to register. I'm running Chrome on Windows XP (use my very old laptop for web e-mail as long as possible before recycling).

  • @wagneripjr - good feedback. We'll look at both of those.

  • @markiz - IMAP is definitely one of the most asked-for features. We have prioritized getting some other work out there - like Exchange Active Sync and improvements to Windows Live Mail and Outlook Connector. If you're using a SmartPhone, I definitely encourage you to set up your Hotmail account using ActiveSync - it will sync your mail, calendar, contacts, and maintain the read state, etc. Similarly, you can set up Outlook and Windows Live Mail to connect to Hotmail in a rich way that maintains state and syncs more than just email. Thanks for the feedback.

  • @markiz - thanks for the good suggestions. We'll look into these.

  • @amktk (and others) - we've definitely gotten feedback about the changes to the sign-in page. Stay tuned for a blog post talking about these changes, the thinking behind them, etc. And please continue to provide feedback on that post and others. Thanks.

  • @steinj14 – (1) – stay tuned, (2) we don’t have IMAP, but we do support Exchange ActiveSync, which works with most SmartPhones, and DeltaSync which works great with Windows Live Mail which is a nice client. But we’ve definitely heard this feedback, (3) Interesting suggestion – I don’t think I’ve heard that one. I’ll give it some thought, (4) We have “todos” in Calendar. It’s not exactly the same as tasks, but it does work and sync down to Outlook. Thanks for the feedback.

  • @starneo - good suggestion. We're thinking through a number of things around aggregated accounts, and I like this one. Thanks.

  • Well done! I've got some problems with the new interface. Buttons/actions should be disabled until they're done, I've deleted a few messages by accident becouse of lag. I thought it did not execute and clicked again, then hotmail deletes the next message without showing it.

    Another issue is the menu. Please, never change the item order, it takes a lot more time if you need to keep looking for that delete button that keeps swapping position with forward, it changes depending on message type.

  • Good job folks. Please post all your source code so we can see how you did it! ;)

  • markiz
    40 Posts

    ok, actually it does not. at least when i read it on the phone, it does not sync to the server :) the other way around works though.

  • markiz
    40 Posts

    ok, disregard that last comment, read status works just fine.

  • markiz
    40 Posts

    As some have pointed out, IMAP is now the single biggest complaint i have.

    As i am not that savy as some, is there a way in POP to make it so that when i read an email on webmail/desktop clien/wp7, that the read status gets synced?

    Leaving a copy on the server option addresses one big POP disadvantage, but the read status is killing me. Am i missing something?

  • markiz
    40 Posts

    In some ways it is faster, but some actions are still way to slow.

    for example, when you hover over the hotmail link on the top "shortcut bar", most of the time it's going to be noticably "laggy". which is not very good when i want to have a quick look at the calendar or contacts.

    Overall, live services have been steadily improving this past almost a year, and i like it. i just hope the UI gets more "metronized", that the naming schemes get more consistent and simplified, and that all of the services get even more seamlessly interconnected.

    Also, having messenger as a "pop-up" is really bad. almost as bad as the facebook chat. There should at least be an option to have all the friends lists collapsed by default. the way it is, i'm seeing contacts that are online and in more than one list multiple times. id like only the favorites to be expanded.

  • langware
    154 Posts

    @Dick Craddock:

    Are you aware of this problem affecting many Hotmail customers:

    Prior to the end of last week, the Hotmail Sign-on page would remember ones email address, and users could also display multiple accounts on the sign-on page.

    Both of these features disappeared around the end of last week. No warning; no explanation.

    The moderators on Windows Live Solution Center (WLSC) are suggesting many different solutions, but none have worked.

    Please see this thread ...

    windowslivehelp.com/thread.aspx

    ... where the moderator states this ...

    "Currently, the option to store multiple accounts on your browser has been disabled. However, you can still sign in to your account without having to enter your password and address. To sign in automatically to your account, just check the "Keep me signed in" tickbox found on the sign in page."

    Selecting the "Keep me signed in" option can be very dangerous on public computers. It can also be inappropriate on computers that are shared by several people. No warnings or caveats are being given with the suggestion to select "Keep me signed in".

    There are many similar threads on the WLSC that discuss this same problem. The suggestions from moderators are all over the map..

    Is anyone working on solving the problem, and on giving directions/status to the WLSC moderators as to what suggestions are (and are not) appropriate?

  • amktk
    8 Posts

    @controlz      As you can see, 10 pages of pretty angry people with the same problem at the following link!

    windowslivehelp.com/thread.aspx

  • controlz
    145 Posts

    @  amktk - I'm having that problem as well!

  • pdj1974
    2 Posts

    @SteveKafka: Thanks a lot for your help - it helped disabling FlashBlock :)

  • @pdj1974, please accept my friend request on this blog so I can contact you directly and get more information about the problem you are having.

  • amktk
    8 Posts

    Prior to June 30 my sign-in page displayed several IDs and remembered the appropriate passwords. Extremely convenient. Since June 30 this page has disappeared, no information is retained and there is no remember me button. To access any of my accounts I have to retype both the windows live ID and the password. For me, Hotmail is now infinitely slower.

  • "This made Hotmail feel slow, because you felt you had to wait for the operation to complete before you could continue working."  - kudos for acknowledging a problem and fixing it. good job guys. keep it up.

  • Zwanzer
    26 Posts

    I agree with Langware !

    There are big, and I mean really big troubles since this so called improvement !

    MS has proven to be more and more careless lately - updates that do more harm than good, etc.

    Forum people that let users do all kinds of stupid, completely useless actions ...

    Really nothing to be proud of, clumsy, very clumsy indeed !!!

  • langware
    154 Posts

    @Dick Craddock:

    Are you (or members of your staff) monitoring the Wave 5 complaints and problems being posted in the Windows Live Solution Center (WLSC)?

    Like its predecessor, Wave 5 seems to have been released with many bugs. These bugs have been acknowledged with "sticky" posts by  WLSC's moderators, but (to date) the actual problems remain unsolved. With over 300 million customers, you are bound to receive complaints any time you release new software, but many of the Wave 5 bugs being reported should have been caught during testing and fixed prior to release.

    You can't possibly be very happy with the quality of Hotmail's recent releases (Wave 4 and Wave 5).

    Can your team provide the WLSC's moderators with more current status on when the reported bugs will be fixed?

  • pdj1974
    2 Posts

    Amazing... You made Hotmail in IE9 almost as fast as Hotmail was in Chrome on my netbook before your changes. At the same time Hotmail is no longer accessible from Chrome - don't know if the problem is in Hotmail or Chrome, but would really like some hint on getting it to work again...

  • Some more requests or questions:

    1) Why Hotmail almost always lacks in innovation? I have not seen even once that hotmail is rolling out some useful features as GMAIL even when I have been using HOTMAIL since when the gmail was not even launched.

    2) Why useful apps or small value additions are not provided frequently? I dont know how you use feedback. The "back to messages" referred in my last post is just one example. I agree that only one person feedback may not be enough for you to change. But if others are not providing feedback about this, it does not mean that they like this. They move to other services. My friends did just that.

    3) Why themes (specially dynamic ones) are not increased or updated for so long? Everyone wants customization and thats why people move to google.

    4) I think you should also store the conversations online (as Yahoo, Gmail). When we chat from hotmail, we dont have the option to save it. so we cant see what we talked on our last chat with someone.

  • @andy: I have sent the mail as asked by you.

  • lewap
    1 Posts

    Why can't I change how I get reminders in my Hotmail calendar?

  • Zwanzer
    26 Posts

    Hi,

    If Hotmail became so much faster, then why is it that :

    - I get that yellow bar on top of my Hotmail web-site indicating "Windows Live Hotmail was not able to complete this request. Microsoft may contact you about any issues you report." ?

    - Windows Live Essentials-Windows Live Mail signin has become as slow as a turtle ?

    - Windows Live Essentials-WIndows Live Photo Gallery signin has become so unbearably slow ?

    - Windows Live Essentials-WIndows Live Mesh needs a lightyear to decide about what and when to synchronize?

  • Sorry, But I have constantly been noticing bad speed of hotmail. Infact, I am fed up from its speed. The only reason I use hotmail is that I am Microsoft Fan. It delays in everything. It keeps showing the "LOADING" message at the bottom left corner of the page whenever a message is opened. I dont agree with above post. I have a 512kbps down speed. Other mails works fine.

    Another suggestion, please add back to messages button at bottom of messages also. First we go down while reading the message and then to go back to list. we have to scroll the whole message up. IT IS VERY ANNOYING.

  • While all that's nice, I would rather you have spent the time:

    1) Fixing the Windows Live Mail client so we can use HTTPS all the time with it.

    2) Adding IMAP support so we could use any email client we prefer.

    Lower priority but niceites:

    3) Ability to share a contact list (if you can share a calendar, why can't you share a contact list?).

    4) Add tasks and notes (similar to Outlook).

    The first two items have been asked for repeatedly but Microsoft seemingly has either sidestepped or ignored these requests. As a result, you'll continue to lose users (including myself) to Gmail who already provide both those features.

  • Randa
    9 Posts

    I noticed the speed a week ago! It was awesome!!! I love it ^_^ Thanks guys!

  • starneo
    1 Posts

    Moin moin Dick, (as we greet in Hamburg, Germany)

    while reading about the really excellent work in gaining more performance in Hotmail, I still wonder why a simple feature is still not realized: As Hotmail provides a service to get and consolidate mails from other postboxes I would love to see the content of the “To:”-Header in the inbox subject line (perferably as an configurable viewing option), like in Outlook or Live Mail.

    Best greetings

    Martin

  • Excellent work! This is an example of how thing should really be done.

  • Nice work. Thanks.

    And this blog can definitely use Messenger Connect ;-)

  • qiziq
    23 Posts

    I agree with @langware.  I have often felt that truncating the page under a toolbar would be much more effective.

  • I did notice it was faster! Nice! I read an article on another site that suggested this was all done to attract users. I certainly hope that, if this was the plan, the people involved would know ads would service this better. I can't remember ever seeing a TV ad for Hotmail but remember GMail ads when it first came out.

  • winter
    15 Posts

    Yes, Live Hotmail is getting better and better, thank you!

  • Albert
    94 Posts

    Having to depend on Outlook for the past several years made me realize just how slow hotmail.live.com was; every time I was not on my personal computer and had to use a friend's, I would be remembered when having to visit the slow Web version. So to me, this is some of the best work/news on Hotmail that will definitely make visiting a much better experience. It's important you guys keep improving performance too, especially if you guys want to push the whole "Pin-to-desktop Web 'app' " functionality...and this brings users one step closer to that experience.

  • @langware - good comments. I definitely think there are some improvements we can make here. Thanks.

  • langware
    154 Posts

    @Dick,

    When you responded: "you can also use keyboard shortcuts: ctrl+. and ctrl+, for next/prev." ... I think you missed the point.

    For many users, to effectively use the keyboard shortcuts for next/prev, two hands are required (one for the ctrl key and the other for the comma or period key. Try using those shortcuts ... do you use one hand or two? And even if you use one hand, do you remove your hand from the mouse to use those shortcuts?

    My point is that many users might not find it efficient to use the keyboard shortcuts for next/previous. They might find using the next/previous icons to be more efficient. However ....

    When scrolling down to read a long message in full pane, the next/previous icons are scrolled off the screen. So, to get to the next/previous message, users either have to scroll back up to the top of their message to click the icons, or remove their hand from the mouse to use keyboard shortcuts. Neither choice is very efficient.

    To improve the efficiency of Hotmail's UI, why not place the next/previous icons into the "fixed" toolbar at the top of the screen?

  • Adnan
    17 Posts

    New hotmail is very fast, I am now in Dhaka, Bangladesh where internet is very slow (512 kbps/64kbps). After upgrade, I was very impressed. It was faster to access Hotmail. Thank You Windows Live Team, You all did great job.

  • @Leoberto - you can also use keyboard shortcuts: ctrl+. and ctrl+, for next/prev.

  • @nosnaj - although we don't have IMAP, we do support ActiveSync, which sync your email, calendar and contacts. It works on Android 2.2 and up. See setup steps here: windowslivehelp.com/solution.aspx

  • nosnaj
    1 Posts

    What about Imap support? Very annoying when using my Android, so I have more or less switched to Gmail instead because of this,

  • @Max - Good catch, thanks! It should be 300k down/75k up. I've corrected the numbers in the post.

  • Why 300kb up / 75kb down? Internet connections generally have much higher downstream bandwidth than upstream bandwidth, not the other way around.

  • Add a bigger "Previous" and "Next" button! They're so tiny, I preffer to back to my Inbox instead of clicking them.

  • controlz
    145 Posts

    I'd noticed Hotmail was a bit faster. Well done Windows Live!