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.
- 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 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.