I’ve explored in previous posts the use of tools such as onboard Analytics (LoadRunner), off-the-shelf tools (Excel) and custom web based implementations (JGraph, ChartDirector) used to analyze the nitty gritty of performance metrics.
All of these tool’s use are governed by some common factors being:
the Expediency factor – the timeliness of data being analyzed as measured between capturing and analysis of raw data.
the Pimp factor – the ‘prettiness’ in the presentation of data. Particularly important for benchmarking or external (public) facing documents. Never underestimate the importance in presentation of your results.
the Share-ability factor – how portable the analysis needs to be. Particularly important when working with different technology groups such as middleware, storage or network subject matter experts.
the Proprietary factor – sometimes you just can’t escape this. Your heart may lie with support open source, but often your pay check dictates that you must use proprietary formats, templates and the like as already setup by the client. Particularly pertinent with the use of tools like Load Runner, QALoad and the like.
Read More
I’ve been looking for some easy ways to enumerate all of the available performance counters on a Win32 platform programatically.
Rather than trawl through the PerfMon counter GUI, or regress back into the millions of raw counters available via WMI, I was looking for a solution somewhere in between.
The ActiveState version of Perl has a Win32::PerfMon module which lets you enumerate cooked performance counter metrics on a Win32 platform. So I started to write a simple script that would list all Objects->Instances->Counters recursively. Sounds simple right?
Unfortunately I found that the module appears faulty when trying to enum Objects that have multiple instances, such as PhysicalDisk and LogicalDisk. Naturally, these are the counters I’m most interested in! After googling to the end of the known universe, I couldn’t find a solution to this problem.
Windows comes with a command line utility called Typeperf which is great for what I ultimately need to script (an unattended batch job that collects performance metrics).
But in order to develop a list of ALL available counters I wrote a mashup in Perl using the Win32::Perfmon module and calls to Typeperf to discover performance counters related to any particular object. That way, I can top and tail the output to my chosen performance counters and not have to worry about the exact typing of these finicky little buggers.
Read More
Any job in which you need to ‘fix’ something requires you to correctly analyze the root cause. Treat just the symptoms and you’ll find yourself on the never-get-fixed roundabout …
Performance tuning fits this profile neatly. In an array of available metrics, how do you avoid chasing the symptoms and never identifying root cause?
Read More
Have just stumbled across a very cool productivity app for OSX. I’m already a big fan of Quicksilver, and FlyGesture builds on that style of functionality albeit from your trackpad.
FlyGesture is activated like Exposé or Dashboard, bringing up a transparent window of “guides” to move your mouse through. Moving your mouse through the guides lets FlyGesture know what action or actions you want to be performed, such as closing a window or opening an application. Not getting it? Here’s a movie that demonstrates creating and using a new gesture to open Safari.
And like all great Mac apps, it’s free!

Read More
Needed to break a large file containing many messages, each message separated on a new line into many new small files containing only one message per file … Started thinking in perl, but almost looked past the Unix split command:
split -l 1 -a 3 bigfile.txt smallfile_
-l ‘n’ will put ‘n’ lines per file
-a ‘n’ defines the length of the suffix, in this case 3 letters
QED
Read More