Skip to main content

Not quite ready for Twitter

It might be helpful to set a few expectations up front to Readers of this blog about what kind of blogging you can expect from me, with the added caveat that I believe such expectations are made to be broken...
As an adjunct to my day job as a software developer, I have written & published numerous articles on topics related to computer performance over the years. Since about 1996, I have been focused on Windows, so I was mainly writing and publishing articles on Windows performance and scalability topics. (If you are interested, many of these early articles are available on the DemandTech web site here: More concise answers written in response to FAQs are published here:  In the past, I often published similar material in industry newsletters, trade magazines, and in the official publications of the Computer Measurement Group, a professional association that I joined in 1983 and remained active in for years.  
With a colleague, Dr. Odysseus Pentakalos, I eventually organized these Windows articles into a book called Windows 2000 Performance Guide, published in 2002 by O’Reilly. (My editor at O’Reilly was responsible for the title, not me. That may have been the name of the book the publisher wished Odysseus and I had written.) I decided to write the book mainly because I discovered a shortage of solid, reliable guidance on performance topics for Microsoft Windows developers and system administrators as I began working to develop performance tools for that platform.
Later, and with the support and cooperation of the Microsoft Windows Server Performance team, I updated that original book to create a volume available in the official Windows Server 2003 Resource Kit, also entitled a Performance Guide, published in 2005 by Microsoft Press. Because the Win2K3 book was written with the active assistance of Microsoft and the material I wrote was vetted by members of the development staff, the 2nd book is certainly the more authoritative one of the two. It also benefitted from feedback I received from Readers of the 1st book and from attendees of a seminar I taught on Windows performance that covered much of the same ground as the books.
Today, that book on Windows Server 2003 performance (internally, Windows Server 2003 is Windows NT version 5.2) unquestionably needs updating to reflect changes to the Windows operating system since 2003. Advances in computer hardware over the interim also contribute to the need for a new edition. For instance, there is very little information in either of those books for systems professionals interested in the performance implications of
·         multi-core processors,
·         solid state disks,
·         virtualization,
·         cloud computing,
and a wide range of other “hot” topics of more recent vintage. Nor is there very much solid information in those books for computer professionals responsible for the scalability and performance of large scale web sites running on Windows Servers using technology associated with ASP.NET, Microsoft SQL Server, and the .NET Framework in general.
As it happens, these are some of the topics in computer performance that I have been actively investigating in the past 5-6 years or so since the publication of the Win2K3 book. I plan to use this blog to consolidate some of the material I have written since the Win2K3 book that I view as “work in progress” towards a next edition of the Windows Performance Guide, filling in some of the major gaps I mentioned earlier. I will also publish newer material based on current topics of interest to me.
Anticipating a question that arises frequently from fans of my two Windows Performance Guide books, I would like to explain that a complete and up-to-date revision requires both a willing publisher and enough spare cycles on my part to execute. Since I expect a willing publisher would not be too difficult to find, to be totally honest, what is lacking on my part is the time to execute on a thorough revision. The process of assembling and polishing a book for print is both grueling & time-consuming. Realistically, I don’t see it happening. So the best I can offer in the interim is this blog, where I will post on topics that are either missing from the book or need serious revisions in light of subsequent changes to the hardware and/or software.
A blog works for me. The phenomenon of self-publishing using the Internet is something I have gotten interested in, too, setting up and contributing to a team blog during my recent 4-year stint working at the Developer Division at Microsoft, and occasionally ghostwriting  an entry for one of the executives there to publish. You are not likely to discover a book that I might write in the check-out line of your local bookstore -- assuming you have a local book store; the rewards of writing such a book are certainly not financial. Visually, the blogging format is often less than adequate for the type of writing I do – I am hoping the latest version of Blogspot is more flexible.
I suppose I am not the normal blogger, attuned to the short attention span that characterizes most content on the web. If you care to check out at the team blog I started at Microsoft (for a representative example, see , you should get a good flavor of my blogging style. You can see that, as a writer, I am not quite ready for Twitter. I am more likely to publish a longer piece with considerable research behind it once every two months or so than something short and pithy three times a week. Whenever I have something substantial of chapter length ready to go, I will likely chop it into pieces of more convenient size for publishing it on the web and blog about it in installments.


Popular posts from this blog

Inside the Windows Runtime, Part 2

As I mentioned in the previous post, run-time libraries in Windows provide services for applications running in User mode. For historical reasons, this run-time layer in Windows was always known as the Win32 libraries, even when these services are requested in the 64-bit OS in 32-bit mode. A good example of a Win32 run-time service is any operation that involves opening and accessing a file somewhere in the file system (or the network, or the cloud). A more involved example is the set of Win32 services an application needs to access to play an audio file, including understanding the specific audio file compressed format, and checking authorization and security.
For Windows 8, a portion of the existing Win32 services in Windows were ported to the ARM hardware platform.  The scope of the Win32 API is huge, and it was probably not feasible to convert all of it during the span of a single, time-constrained release cycle. Unfortunately, the fact that the new Windows 8 Runtime library encomp…

High Resolution Clocks and Timers for Performance Measurement in Windows.

Within the discipline of software performance engineering (SPE), application response time monitoring refers to the capability of instrumenting application requests, transactions and other vital interaction scenarios in order to measure their response times. There is no single, more important performance measurement than application response time, especially in the degree which the consistency and length of application response time events reflect the user experience and relate to customer satisfaction. All the esoteric measurements of hardware utilization that Perfmon revels in pale by comparison. Of course, performance engineers usually still want to be able to break down application response time into its component parts, one of which is CPU usage. Other than the Concurrency Visualizer that is packaged with the Visual Studio Profiler that was discussed in the previous post, there are few professional-grade, application response time monitoring and profiling tools that exploit the …

Why is my web app running slowly? -- Part 1.

This series of blog posts picks up on a topic I made mention of earlier, namely scalability models, where I wrote about how implicit models of application scalability often impact the kinds of performance tests that are devised to evaluate the performance of an application. As discussed in that earlier blog post, sometimes the influence of the underlying scalability model is subtle, often because the scalability model itself is implicit. In the context of performance testing, my experience is that it can be very useful to render the application’s performance and scalability model explicitly. At the very least, making your assumptions explicit opens them to scrutiny, allowing questions to be asked about their validity, for example.
The example I used in that earlier discussion was the scalability model implicit when employing stress test tools like HP LoadRunner and Soasta CloudTest against a web-based application. Load testing by successively increasing the arrival rate of customer r…