Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have 40 machines (from Windows XP to 7, different configurations) in my company and I am responsible for maintaining them. What I would like to do is to measure the impact of new updates and new software installation on the performance of these PCs.

For this purpose, I need first to have a common metric for all the computers. I thought that such a metrics, could be time needed to start MS Outlook or MS Excel, because these two application are mostly used. Second, I need a way how to measure it. I thought about wrapping, e.g., ms outlook, to track (and send to a server) every k start how much time it needs to be ready to work with.

Does anybody have any experience with measurement of PC performance across the organization? Are there any commercial solutions for this purpose?

share|improve this question
Wouldn't it be easier to test new things on a test computer to see the performance differences and later deploy them to other computers? The only differences in performance would be a clear difference (slow hardware, or running a different set of software) and I guess that in such case an user would complain about it... By doing company-wide performance measures you might be decreasing performance for most users (due to traces and sending those over) just to increase the performance of some users that have rare differences. Why care about Outlook opening slower? It only happens once at boot. – Tom Wijsman Oct 26 '10 at 15:31
As for the goal, speeding up applications: You might want to consider ReadyBoost/SSD. – Tom Wijsman Oct 26 '10 at 15:34
@TomWij, unfortunately there is always a "small" difference between tests and reality, which makes people unhappy and frustrated. Outlook was just an example. – Skarab Oct 26 '10 at 15:51
But I don't think everyone would feel unhappy and frustrated, only a small share which should report that to you... But anyway, heading for a solution XPerf seems the best way to go as it provides you with the best details to help you troubleshoot the problem right away. But you will meet other problems if you want automation: How would it decide when an application is done loading? It might be waiting for a time-out instead. How are you going to do the tracing in non-invasive way? The application would have to wait for XPerf to start tracing and you would have an I/O impact afterward... – Tom Wijsman Oct 26 '10 at 21:15
I was wondering exactly the same: how to benchmark a computer that's not a fresh install? – Ivo Flipse Oct 27 '10 at 0:54
up vote 0 down vote accepted

I used the new XPERF tool to measure the boot speed of our XP and windows 7 machines. We were especially looking at Disk IO, since that was our biggest bottleneck on our old systems. (we used the graphs and charts to prove our need for SSD's in our laptops). The readability is excellent, and you can really drill down in and see what is causing delays. I really recommend the Pigs can Fly blog on MSDN for a good intro. One thing it is lacking however is a good way to programatically compare two results. We would just load two graphs up side by side, and adjust the viewing area to be the same scale, and compare visually. We mostly use the xbootrace feature of XPERF, since boot speed is what we care about most for our very mobile workforce.

You could pick a sample of a few machines, and keep a history of their boot graphs over time.

share|improve this answer
XPerf has support for exporting things to CSV, XML and Plain-Text. I suppose it would be possible to programmatically extract useful information, although it can take quite some time before you can come up with a script that generates really useful reports... – Tom Wijsman Oct 26 '10 at 21:25
Can I declare an events on which XPERF should start to measure? E.g., a user starts outlook or Firefox? I ask because I have already an experience of being a user when I had problems with my PC but according to an administrator everything worked fine and fast. – Skarab Oct 27 '10 at 12:35
There would be two options for progress start, either create a batch/script to start and stop the tracing yourself (but you would have to do this for everything you want measured) or you would write a system hook but then too much will be traced (as you really don't want every executable to be traced). If an administrator doesn't have the same experience he hasn't gathered enough information (what is slow?), didn't the right measures (do a cold trace) and hasn't applied the right fixes and prevention... – Tom Wijsman Oct 27 '10 at 13:36

Apart from XPerf, another idea is to schedule kernel loggers and to use Performance Analysis of Logs to get useful Performance related information from those logs, this won't show you a progress on the start times of the applications but will show you a more general Performance related issues.

After gathering the logs you won't have to worry about processing them yourself, you could batch process them and then check the different HTML files for issues. Just an example of that might be a huge memory leak on one of your computers, XPerf won't show that in its traces and neither will an application checking the start up times of your applications.

You could set up something that checks the memory for that purpose, but why take so much effort if there are already loggers on your system that provide you with a wealth of other useful information...

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .