Skip to content
Snippets Groups Projects
Commit b5fd651e authored by Jan Waller's avatar Jan Waller
Browse files

Spassmeter

parent a6f02131
No related branches found
No related tags found
No related merge requests found
#rm(list=ls(all=TRUE))
results_fn="raw"
outtxt_fn="results-text.txt"
configs.loop=10
configs.labels=c("No MOnitoring","Spassmeter")
configs.count=length(configs.labels)
results.count=2000000
results.skip=results.count/2
printvalues = matrix(nrow=7,ncol=configs.count,dimnames=list(c("mean","ci95%","md25%","md50%","md75%","max","min"),c(1:configs.count)))
cr=10
for (cc in (1:configs.count)) {
resultsBIG <- c()
for (cl in (1:configs.loop)) {
results_fn_temp=paste(results_fn, "-", cl, "-", cr, "-", cc, ".csv", sep="")
results=read.csv2(results_fn_temp,nrows=(results.count-results.skip),skip=results.skip,quote="",colClasses=c("NULL","numeric"),comment.char="",col.names=c("thread_id","duration_nsec"),header=FALSE)
resultsBIG <- c(resultsBIG, results[["duration_nsec"]]/(1000))
rm(results)
}
printvalues["mean",cc]=mean(resultsBIG)
printvalues["ci95%",cc]=qnorm(0.975)*sd(resultsBIG)/sqrt(length(resultsBIG))
printvalues[c("md25%","md50%","md75%"),cc]=quantile(resultsBIG,probs=c(0.25,0.5,0.75))
printvalues["max",cc]=max(resultsBIG)
printvalues["min",cc]=min(resultsBIG)
}
resultstext=formatC(printvalues,format="f",digits=4,width=8)
print(resultstext)
write("response time",file=outtxt_fn,append=TRUE)
write.table(resultstext,file=outtxt_fn,append=TRUE,quote=FALSE,sep="\t",col.names=FALSE)
#!/bin/bash #!/bin/bash
# This file is configured for linux instead of solaris!!!
JAVABIN="" JAVABIN=""
...@@ -11,7 +12,7 @@ NUM_LOOPS=10 ## 10 ...@@ -11,7 +12,7 @@ NUM_LOOPS=10 ## 10
THREADS=1 ## 1 THREADS=1 ## 1
RECURSIONDEPTH=10 ## 10 RECURSIONDEPTH=10 ## 10
TOTALCALLS=2000000 ## 2000000 TOTALCALLS=2000000 ## 2000000
METHODTIME=500000 ## 500000 METHODTIME=0 ## 500000
#MOREPARAMS="--quickstart" #MOREPARAMS="--quickstart"
MOREPARAMS="${MOREPARAMS}" MOREPARAMS="${MOREPARAMS}"
...@@ -21,12 +22,11 @@ echo "Experiment will take circa ${TIME} seconds." ...@@ -21,12 +22,11 @@ echo "Experiment will take circa ${TIME} seconds."
echo "Removing and recreating '$RESULTSDIR'" echo "Removing and recreating '$RESULTSDIR'"
(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} (rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR}
mkdir ${RESULTSDIR}stat/ #mkdir ${RESULTSDIR}stat/
# Clear spassmeter.log and initialize logging # Clear spassmeter.log and initialize logging
rm -f ${BASEDIR}spassmeter.log rm -f ${BASEDIR}spassmeter.log
touch ${BASEDIR}spassmeter.log touch ${BASEDIR}spassmeter.log
mkdir ${BASEDIR}logs/
RAWFN="${RESULTSDIR}raw" RAWFN="${RESULTSDIR}raw"
...@@ -40,7 +40,8 @@ JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" ...@@ -40,7 +40,8 @@ JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation"
JAR="-jar MooBench.jar" JAR="-jar MooBench.jar"
JAVAARGS_NOINSTR="${JAVAARGS}" JAVAARGS_NOINSTR="${JAVAARGS}"
JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/linux/spass-meter-ia.jar=xmlconfig=${BASEDIR}lib/config.xml,out=${RESULTSDIR}spassmeter.txt" CLASSPATH="-classpath ${BASEDIR}lib/linux/spass-meter-ia.jar:${BASEDIR}lib/linux/spass-meter-boot.jar:${BASEDIR}lib/linux/spass-meter-rt.jar"
JAVAARGS_LTW="${JAVAARGS} ${CLASSPATH} -javaagent:${BASEDIR}lib/linux/spass-meter-ia.jar=xmlconfig=${BASEDIR}lib/config.xml,out=${RESULTSDIR}spassmeter.txt"
## Write configuration ## Write configuration
uname -a >${RESULTSDIR}configuration.txt uname -a >${RESULTSDIR}configuration.txt
...@@ -68,7 +69,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ...@@ -68,7 +69,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
k=`expr ${k} + 1` k=`expr ${k} + 1`
echo " # ${i}.${j}.${k} No instrumentation" echo " # ${i}.${j}.${k} No instrumentation"
echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}spassmeter.log echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}spassmeter.log
sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \
--output-filename ${RAWFN}-${i}-${j}-${k}.csv \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
--totalcalls ${TOTALCALLS} \ --totalcalls ${TOTALCALLS} \
...@@ -76,7 +77,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ...@@ -76,7 +77,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
--totalthreads ${THREADS} \ --totalthreads ${THREADS} \
--recursiondepth ${j} \ --recursiondepth ${j} \
${MOREPARAMS} ${MOREPARAMS}
kill %sar #kill %sar
[ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
echo >>${BASEDIR}spassmeter.log echo >>${BASEDIR}spassmeter.log
echo >>${BASEDIR}spassmeter.log echo >>${BASEDIR}spassmeter.log
...@@ -87,7 +88,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ...@@ -87,7 +88,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
k=`expr ${k} + 1` k=`expr ${k} + 1`
echo " # ${i}.${j}.${k} SPASSmeter" echo " # ${i}.${j}.${k} SPASSmeter"
echo " # ${i}.${j}.${k} SPASSmeter" >>${BASEDIR}spassmeter.log echo " # ${i}.${j}.${k} SPASSmeter" >>${BASEDIR}spassmeter.log
sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
${JAVABIN}java ${JAVAARGS_LTW} ${JAR} \ ${JAVABIN}java ${JAVAARGS_LTW} ${JAR} \
--output-filename ${RAWFN}-${i}-${j}-${k}.csv \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
--totalcalls ${TOTALCALLS} \ --totalcalls ${TOTALCALLS} \
...@@ -95,7 +96,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ...@@ -95,7 +96,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
--totalthreads ${THREADS} \ --totalthreads ${THREADS} \
--recursiondepth ${j} \ --recursiondepth ${j} \
${MOREPARAMS} ${MOREPARAMS}
kill %sar #kill %sar
[ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
echo >>${BASEDIR}spassmeter.log echo >>${BASEDIR}spassmeter.log
echo >>${BASEDIR}spassmeter.log echo >>${BASEDIR}spassmeter.log
...@@ -103,55 +104,14 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ...@@ -103,55 +104,14 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
sleep ${SLEEPTIME} sleep ${SLEEPTIME}
done done
zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat #zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
rm -rf ${RESULTSDIR}stat/ #rm -rf ${RESULTSDIR}stat/
mv ${BASEDIR}spassmeter.log ${RESULTSDIR}spassmeter.log mv ${BASEDIR}spassmeter.log ${RESULTSDIR}spassmeter.log
mv ${BASEDIR}logs/ ${RESULTSDIR}
[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log [ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log
[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} [ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR}
## Generate Results file
# Timeseries
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
output_fn="${RESULTSDIR}results-timeseries.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSIONDEPTH})
configs.labels=c("No Probe","SPASSmeter")
configs.colors=c("black","red")
results.count=${TOTALCALLS}
tsconf.min=(${METHODTIME}/1000)
tsconf.max=(${METHODTIME}/1000)+300
source("${RSCRIPTDIR}timeseries.r")
EOF
# Timeseries-Average
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
output_fn="${RESULTSDIR}results-timeseries-average.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSIONDEPTH})
configs.labels=c("No Probe","SPASSmeter")
configs.colors=c("black","red")
results.count=${TOTALCALLS}
tsconf.min=(${METHODTIME}/1000)
tsconf.max=(${METHODTIME}/1000)+300
source("${RSCRIPTDIR}timeseries-average.r")
EOF
# Bars
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
outtxt_fn="${RESULTSDIR}results-text.txt"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSIONDEPTH})
configs.labels=c("No Probe","SPASSmeter")
configs.colors=c("black","red")
results.count=${TOTALCALLS}
results.skip=${TOTALCALLS}*3/4
source("${RSCRIPTDIR}stats.r")
EOF
## Clean up raw results ## Clean up raw results
zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* #gzip -qr ${RESULTSDIR}results.zip ${RAWFN}*
rm -f ${RAWFN}* #rm -f ${RAWFN}*
[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} [ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR}
[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out [ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment