I have started using the statistical package R to detect any trends in performance test data. In this example I am looking to detect windows perfmon metrics that increase over the duration of a performance test.
You can install R an open source statistical analysis package from here http://www.r-project.org/
The code below can be cut and pasted into the R gui command line but you will have to change the first line of the script to use the directory holding the data file (procs.csv).
The comments should give you an idea what it is doing..
setwd("C:\\Documents and Settings\\alee\\My Documents\\Projects\\youProject\\")
# Load the Data isetednto a Data Frame
pData <- read.csv("procs.csv",sep=",",header=TRUE)
NumOfCols <- length(names(pData))
# Create a metrix to hold the gradients
slope <- 1:NumOfCols
# Loop through the metrics and calculate the slope
for(i in 2:NumOfCols ) {
x <- 1:length(pData[[i]])
y <- pData[[i]]
# Ignore any blank columns
if ( is.na(y[[1]]) )
{slope[[i]] <- NA }
else
{
fit <- lm( y ~ x)
slope[[i]] <- fit[[1]][[2]]
}
}
results=data.frame(metric=names(pData),Co=slope,OrgOrder=1:NumOfCols)
OrderResults <- results[order(-results$Co),]
#plot top 5 growing metrics
for(i in 1:5)
{
OrderResults[i,3]
plot(pData[[OrderResults[i,3]]],type="o",col="blue")
title(main=names(pData[OrderResults[i,3]]), col.main="black", font.main=4)
# Prompt for Enter so plot stays on screen long enough to be read
readline(prompt = "Pause. Press to continue...")
}