Welcome to Computer Performance by Design, a web site devoted to practical guidance for computer systems professionals on Windows performance and other related computer performance topics. My plans for the site include consolidating articles and blog postings I have written & published over the years on software performance engineering, Windows performance, and related topics in one convenient location. In 2005, I wrote a book for Microsoft and published by Microsoft Press as a volume in the Server 2003 Resource Kit. The book was called the Windows Server 2003 Performance Guide, which was an updated version of a book Odysseas Pentakalos and I wrote called Windows 2000 Performance Guide that O’Reilly published in 2002. As the years have passed, the problem of updating the material in the Windows Server 2003 edition of the book has loomed ever larger. Much of the information in the Server 2003 book is still current and remains useful as is, but there are also many areas that have changed in both major and minor ways. These include both major and minor changes in memory management, enhancements to support NUMA architectures, increasing reliance on the use of ETW-based diagnostics and tooling, and many other areas. Plus, new topics like running Windows under VMware and how virtualization perturbs the measurements you see in Windows, which weren’t major considerations back in 2004, but certainly are today.
Periodically, in the intervening years, I have been writing and publishing additional, related, and updated material on the subject. A good example of this is a thorough discussion of the high performance clock that is available in Windows using the QueryPerformanceCounter API, a topic, frankly, I did not understand well enough myself at the time the books were written to attempt. This discussion of high resolution clocks and timers in Windows, along with many similar posts, was self-published at http://performancebydesign.blogspot.com/, starting sometime in 2010, but is now available through this site. In addition, there are other articles on relevant topics that are scattered about, some of which are referenced at the company web site at http://demandtech.com/knowledge-center/perspectives-on-performance/. Prior to that, I also did some blogging while at Microsoft (for a representative entry, click here, or Search MSDN blogs looking for my posts under my name). Given this quantity of written material, things are a mess, and getting messier each time I add more blog posts. So, without committing myself to the formidable task of updating the entire book from top to bottom, I will, at least, commit to a thorough consolidation effort here at this web site.
On numerous occasions, I have written more formal articles and submitted them for publication, mostly at www.cmg.org, a professional association I have been involved in for years. For example, virtualization technology was not much in evidence in the Windows server environment during the timeframe the books were written in, so it was not a topic I covered at the time. However, virtualization is quite pervasive in data centers today, with many performance implications, several of which I have investigated in separate articles. During the 4 year period I toiled away in the Microsoft Developer Division, I wrote a few articles about .NET performance, another topic barely mentioned in the Windows Server 2003 Performance Guide. This also includes documentation for a feature of the Visual Studio Profiler I worked on called Performance Rules, only some of which was ever published online.
Recently, I have been building a software tool for developers to analyze ETW traces, a diagnostic facility built into Windows. The initial version is focused on web application performance. This tool is called the Web Application Trace Explorer, which is planned as a free, Open Source project. It is available for download here, along with installation steps, a User Guide, and other documentation.
A word about the title
Finally, I want to mention that the title “Performance by Design” is one that I have borrowed wholesale from Dr. Daniel Menascé of George Mason University, who wrote (with Larry Dowdy) an excellent book on software performance engineering with that title back in 2004. “Borrowed” sounds ever so much nicer than “shamelessly stolen,” but the latter basically captures the essence of this heinous act. In my defense, the last time I saw Dr. Menascé, I confessed to my crime, telling him I had brazenly appropriated his title for my blog. Danny appeared to absolve me of any guilt over the dastardly deed, but he is also probably too nice a guy to tell me to my face what a miscreant I am..