Sunday, November 2, 2008

Google Desktop 5.8 for Windows: increased performance

We love getting your feedback, and one of the themes that has cropped up in the Google Desktop Help group is that you want a lighter, faster product. We heard the message loud and clear and decided that the Google Desktop 5.8 for Windows release would be based entirely on performance.

In true Google fashion, we took a data-driven approach: Measure, then analyze, fix the most important issues and lowest hanging fruit, then rinse, lather and repeat.

First, we built performance tests that simulate a typical user's behavior when using Google Desktop and measure the time spent on actions such as starting up, shutting down, searching, adding a gadget, adding a new document to the search index, and so forth. We then took a page from the Google Chrome playbook by running the performance tests automatically for every single change we made to the software, on dozens of machines each time so that an average of the time measurements from all of them would give us a reliable comparison against previous versions.

Next, we refined an option that helps us improve the product, with your agreement. To send us information about problems you might experience, you can opt in to our error reporting system. If you have opted in, the system will send us anonymous diagnostic information about such events as crashes. In the new version, we improved this system to also detect and report situations where our product could be making your computer slow to respond.

We've learned a lot from these two new sources of data. The performance measurement system enabled us to discover some seemingly small changes that had a major impact on performance. We've been able to immediately fix changes that decreased performance, and learn from changes that improved performance. For example:
  • We found a way to cut memory usage during startup by about 50%.
  • Shutdown now happens five times faster, and we were able to avoid a seemingly innocuous state that would have almost doubled startup time.
From automated error reports sent by our beta testers, we learned that while Google Desktop generally performs very well, certain types of usage and some interactions with 3rd party software can trigger problems. We've made dozens of improvements based on this data. Here are some examples of what we've been able to fix:

  • A few obscure cases where interaction with third party software could slow the computer down when certain types of files were being added to the search index.
  • A rare issue that could cause slower computers to become temporarily unresponsive during Google Desktop startup.

We still weren't satisfied, so we analyzed the design of our software to find ways to improve it. This led us to make a few more changes:
  • We realized that with the hundreds of Google Desktop Gadgets available from third parties, there is always the possibility that one of them performs badly. To help you deal with this, we added a system that detects when a gadget is causing your computer to perform poorly, and asks you whether to remove the gadget. While we were at it, we added proactive security measures that prevent malicious gadgets from stealing information from other gadgets, and we made changes that allow Flash programs such as interactive games to be embedded in gadgets; for certain types of gadgets this can be a lighter weight approach than previously possible.
  • To reduce memory usage, increase stability and reduce memory fragmentation, we reduced the number of different processes that Google Desktop runs, and we now recycle some of our processes frequently (just like Google Chrome).
  • Microsoft Outlook users will be glad to hear that we've reduced memory usage while at the same time improving the coverage and increasing the stability of our Outlook support.
We've had a fun and rewarding time improving performance, because at every step of the way we were sure that you would enjoy our product even more. Please give our new lighter, faster version a try. We hope you'll enjoy it.


No comments: