From 1333327b2c6b4ae9db7f6f4c0836be04fb5995e9 Mon Sep 17 00:00:00 2001
From: Jan Waller <jwa@informatik.uni-kiel.de>
Date: Thu, 6 Mar 2014 15:24:26 +0100
Subject: [PATCH] Additional experiemnts with inspectIT

---
 benchmark.sh                                  | 275 ++++++++++++++++++
 frameworks/inspectIT/README                   |   4 +-
 .../inspectIT/benchmark-isequence-inner.sh    | 242 +++++++++++++++
 frameworks/inspectIT/benchmark-timer-inner.sh | 242 +++++++++++++++
 frameworks/inspectIT/benchmark.sh             |  22 +-
 .../config/isequence/inspectit-agent.cfg      |  49 ++++
 .../{full => timer}/inspectit-agent.cfg       |   0
 7 files changed, 822 insertions(+), 12 deletions(-)
 create mode 100644 benchmark.sh
 create mode 100644 frameworks/inspectIT/benchmark-isequence-inner.sh
 create mode 100644 frameworks/inspectIT/benchmark-timer-inner.sh
 create mode 100644 frameworks/inspectIT/config/isequence/inspectit-agent.cfg
 rename frameworks/inspectIT/config/{full => timer}/inspectit-agent.cfg (100%)

diff --git a/benchmark.sh b/benchmark.sh
new file mode 100644
index 0000000..92bab31
--- /dev/null
+++ b/benchmark.sh
@@ -0,0 +1,275 @@
+#!/bin/bash
+
+JAVABIN=""
+
+RSCRIPTDIR=r/
+BASEDIR=./
+RESULTSDIR="${BASEDIR}tmp/results-inspectit/"
+
+SLEEPTIME=0           ## 30
+NUM_LOOPS=1           ## 10
+THREADS=1              ## 1
+RECURSIONDEPTH=10      ## 10
+TOTALCALLS=100000     ## 2000000
+METHODTIME=0      ## 500000
+
+MOREPARAMS="--quickstart"
+MOREPARAMS="${MOREPARAMS}"
+
+TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS}  \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} `
+echo "Experiment will take circa ${TIME} seconds."
+
+echo "Removing and recreating '$RESULTSDIR'"
+(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR}
+mkdir ${RESULTSDIR}stat/
+
+# Clear inspectit.log and initialize logging
+rm -f ${BASEDIR}inspectit.log
+touch ${BASEDIR}inspectit.log
+
+RAWFN="${RESULTSDIR}raw"
+
+JAVAARGS="-server"
+JAVAARGS="${JAVAARGS} -d64"
+JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G"
+JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation"
+#JAVAARGS="${JAVAARGS} -XX:+PrintInlining"
+#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation"
+#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE"
+JAR="-jar OverheadEvaluationMicrobenchmark.jar"
+
+JAVAARGS_NOINSTR="${JAVAARGS}"
+JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties"
+JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg -Dinspectit.disableProbe=true"
+JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg -Dinspectit.disableStorage=true"
+JAVAARGS_INSPECTIT_NOCHARTING="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/fullNoCharting/inspectit-agent.cfg"
+JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg"
+
+## Write configuration
+uname -a >${RESULTSDIR}configuration.txt
+${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt
+echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt
+echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt
+echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt
+echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt
+echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt
+echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt
+sync
+
+## Execute Benchmark
+for ((i=1;i<=${NUM_LOOPS};i+=1)); do
+    j=${RECURSIONDEPTH}
+    k=0
+    echo "## Starting iteration ${i}/${NUM_LOOPS}"
+    echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log
+
+    # No instrumentation
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} No instrumentation"
+    echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java  ${JAVAARGS_NOINSTR} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (disabled)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (disabled)"
+    echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (no storage)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (no storage)"
+    echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (no charting)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (no charting)"
+    echo " # ${i}.${j}.${k} InspectIT (no charting)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_NOCHARTING} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+    
+    # InspectIT (full)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (full)"
+    echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_FULL} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+done
+zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
+rm -rf ${RESULTSDIR}stat/
+mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.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}
+
+## 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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)")
+configs.colors=c("black","red","blue","green","pink")
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)")
+configs.colors=c("black","red","blue","green","pink")
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)")
+results.count=${TOTALCALLS}
+results.skip=${TOTALCALLS}/2
+source("${RSCRIPTDIR}stats.r")
+EOF
+
+## Clean up raw results
+zip -jqr ${RESULTSDIR}results.zip ${RAWFN}*
+rm -f ${RAWFN}*
+[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR}
+[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out
diff --git a/frameworks/inspectIT/README b/frameworks/inspectIT/README
index 12d7ce9..2340fa6 100644
--- a/frameworks/inspectIT/README
+++ b/frameworks/inspectIT/README
@@ -4,5 +4,5 @@ agent/  -> add from download
 CMR/    -> add from download
 config/ -> present and preconfigured
 
-to clean:
-remove in CMR the folders db/ logs/ storage/
+
+the -inner experiments require a customized version of inspectIT, that is able to deactivate parts of its probes
diff --git a/frameworks/inspectIT/benchmark-isequence-inner.sh b/frameworks/inspectIT/benchmark-isequence-inner.sh
new file mode 100644
index 0000000..96b150b
--- /dev/null
+++ b/frameworks/inspectIT/benchmark-isequence-inner.sh
@@ -0,0 +1,242 @@
+#!/bin/bash
+
+JAVABIN=""
+
+RSCRIPTDIR=r/
+BASEDIR=./
+RESULTSDIR="${BASEDIR}tmp/results-inspectit/"
+
+SLEEPTIME=30           ## 30
+NUM_LOOPS=10           ## 10
+THREADS=1              ## 1
+RECURSIONDEPTH=10      ## 10
+TOTALCALLS=2000000     ## 2000000
+METHODTIME=0           ## 500000
+
+#MOREPARAMS="--quickstart"
+MOREPARAMS="${MOREPARAMS}"
+
+TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS}  \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} `
+echo "Experiment will take circa ${TIME} seconds."
+
+echo "Removing and recreating '$RESULTSDIR'"
+(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR}
+mkdir ${RESULTSDIR}stat/
+
+# Clear inspectit.log and initialize logging
+rm -f ${BASEDIR}inspectit.log
+touch ${BASEDIR}inspectit.log
+mkdir ${BASEDIR}logs/
+
+RAWFN="${RESULTSDIR}raw"
+
+JAVAARGS="-server"
+JAVAARGS="${JAVAARGS} -d64"
+JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G"
+JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation"
+#JAVAARGS="${JAVAARGS} -XX:+PrintInlining"
+#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation"
+#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE"
+JAR="-jar OverheadEvaluationMicrobenchmark.jar"
+
+JAVAARGS_NOINSTR="${JAVAARGS}"
+JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties  -Dinspectit.config=${BASEDIR}config/isequence/"
+JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.disableProbe=true"
+JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.disableStorage=true"
+JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW}"
+
+## Write configuration
+uname -a >${RESULTSDIR}configuration.txt
+${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt
+echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt
+echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt
+echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt
+echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt
+echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt
+echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt
+sync
+
+## Execute Benchmark
+for ((i=1;i<=${NUM_LOOPS};i+=1)); do
+    j=${RECURSIONDEPTH}
+    k=0
+    echo "## Starting iteration ${i}/${NUM_LOOPS}"
+    echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log
+
+    # No instrumentation
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} No instrumentation"
+    echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java  ${JAVAARGS_NOINSTR} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (disabled)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (disabled)"
+    echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (no storage)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (no storage)"
+    echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+    
+    # InspectIT (full)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (full)"
+    echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_FULL} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+done
+zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
+rm -rf ${RESULTSDIR}stat/
+mv ${BASEDIR}logs/ ${RESULTSDIR}
+mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.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}
+
+## 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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+configs.colors=c("black","red","blue","green")
+results.count=${TOTALCALLS}
+tsconf.min=(${METHODTIME}/1000)
+tsconf.max=(${METHODTIME}/1000)+100
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+configs.colors=c("black","red","blue","green")
+results.count=${TOTALCALLS}
+tsconf.min=(${METHODTIME}/1000)
+tsconf.max=(${METHODTIME}/1000)+100
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+results.count=${TOTALCALLS}
+results.skip=${TOTALCALLS}/2
+source("${RSCRIPTDIR}stats.r")
+EOF
+
+## Clean up raw results
+zip -jqr ${RESULTSDIR}results.zip ${RAWFN}*
+rm -f ${RAWFN}*
+[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR}
+[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out
diff --git a/frameworks/inspectIT/benchmark-timer-inner.sh b/frameworks/inspectIT/benchmark-timer-inner.sh
new file mode 100644
index 0000000..b988e27
--- /dev/null
+++ b/frameworks/inspectIT/benchmark-timer-inner.sh
@@ -0,0 +1,242 @@
+#!/bin/bash
+
+JAVABIN=""
+
+RSCRIPTDIR=r/
+BASEDIR=./
+RESULTSDIR="${BASEDIR}tmp/results-inspectit/"
+
+SLEEPTIME=30           ## 30
+NUM_LOOPS=10           ## 10
+THREADS=1              ## 1
+RECURSIONDEPTH=10      ## 10
+TOTALCALLS=2000000     ## 2000000
+METHODTIME=0           ## 500000
+
+#MOREPARAMS="--quickstart"
+MOREPARAMS="${MOREPARAMS}"
+
+TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS}  \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} `
+echo "Experiment will take circa ${TIME} seconds."
+
+echo "Removing and recreating '$RESULTSDIR'"
+(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR}
+mkdir ${RESULTSDIR}stat/
+
+# Clear inspectit.log and initialize logging
+rm -f ${BASEDIR}inspectit.log
+touch ${BASEDIR}inspectit.log
+mkdir ${BASEDIR}logs/
+
+RAWFN="${RESULTSDIR}raw"
+
+JAVAARGS="-server"
+JAVAARGS="${JAVAARGS} -d64"
+JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G"
+JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation"
+#JAVAARGS="${JAVAARGS} -XX:+PrintInlining"
+#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation"
+#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE"
+JAR="-jar OverheadEvaluationMicrobenchmark.jar"
+
+JAVAARGS_NOINSTR="${JAVAARGS}"
+JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties -Dinspectit.config=${BASEDIR}config/timer/
+JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.disableProbe=true"
+JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.disableStorage=true"
+JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW}"
+
+## Write configuration
+uname -a >${RESULTSDIR}configuration.txt
+${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt
+echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt
+echo "" >>${RESULTSDIR}configuration.txt
+echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt
+echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt
+echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt
+echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt
+echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt
+echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt
+sync
+
+## Execute Benchmark
+for ((i=1;i<=${NUM_LOOPS};i+=1)); do
+    j=${RECURSIONDEPTH}
+    k=0
+    echo "## Starting iteration ${i}/${NUM_LOOPS}"
+    echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log
+
+    # No instrumentation
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} No instrumentation"
+    echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java  ${JAVAARGS_NOINSTR} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (disabled)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (disabled)"
+    echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+    # InspectIT (no storage)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (no storage)"
+    echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+    
+    # InspectIT (full)
+    k=`expr ${k} + 1`
+    echo " # ${i}.${j}.${k} InspectIT (full)"
+    echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log
+    sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
+    ${JAVABIN}java \
+        -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \
+        -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \
+        -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
+        -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
+        -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
+    sleep 10
+    ${JAVABIN}java  ${JAVAARGS_INSPECTIT_FULL} ${JAR} \
+        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+        --totalcalls ${TOTALCALLS} \
+        --methodtime ${METHODTIME} \
+        --totalthreads ${THREADS} \
+        --recursiondepth ${j} \
+        ${MOREPARAMS}
+    kill $!
+    sleep 10
+    rm -rf ${BASEDIR}storage/
+    rm -rf ${BASEDIR}db/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
+    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+    echo >>${BASEDIR}inspectit.log
+    echo >>${BASEDIR}inspectit.log
+    sync
+    sleep ${SLEEPTIME}
+
+done
+zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
+rm -rf ${RESULTSDIR}stat/
+mv ${BASEDIR}logs/ ${RESULTSDIR}
+mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.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}
+
+## 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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+configs.colors=c("black","red","blue","green")
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+configs.colors=c("black","red","blue","green")
+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","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)")
+results.count=${TOTALCALLS}
+results.skip=${TOTALCALLS}/2
+source("${RSCRIPTDIR}stats.r")
+EOF
+
+## Clean up raw results
+zip -jqr ${RESULTSDIR}results.zip ${RAWFN}*
+rm -f ${RAWFN}*
+[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR}
+[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out
diff --git a/frameworks/inspectIT/benchmark.sh b/frameworks/inspectIT/benchmark.sh
index 212a0cf..0288baf 100644
--- a/frameworks/inspectIT/benchmark.sh
+++ b/frameworks/inspectIT/benchmark.sh
@@ -26,6 +26,7 @@ mkdir ${RESULTSDIR}stat/
 # Clear inspectit.log and initialize logging
 rm -f ${BASEDIR}inspectit.log
 touch ${BASEDIR}inspectit.log
+mkdir ${BASEDIR}logs/
 
 RAWFN="${RESULTSDIR}raw"
 
@@ -41,7 +42,7 @@ JAR="-jar OverheadEvaluationMicrobenchmark.jar"
 JAVAARGS_NOINSTR="${JAVAARGS}"
 JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties"
 JAVAARGS_INSPECTIT_MINIMAL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/minimal/"
-JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/"
+JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/timer/"
 
 ## Write configuration
 uname -a >${RESULTSDIR}configuration.txt
@@ -95,7 +96,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
         -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
         -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
         -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
-        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
     sleep 10
     ${JAVABIN}java  ${JAVAARGS_INSPECTIT_MINIMAL} ${JAR} \
         --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
@@ -106,11 +107,11 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
         ${MOREPARAMS}
     kill $!
     sleep 10
-    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
-    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
     rm -rf ${BASEDIR}storage/
     rm -rf ${BASEDIR}db/
-    rm -rf ${BASEDIR}logs/
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
     kill %sar
     [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
     echo >>${BASEDIR}inspectit.log
@@ -148,7 +149,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
         -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \
         -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \
         -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \
-        -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 &
+        -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 &
     sleep 10
     ${JAVABIN}java  ${JAVAARGS_INSPECTIT_FULL} ${JAR} \
         --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
@@ -159,12 +160,12 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
         ${MOREPARAMS}
     kill $!
     sleep 10
-    [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
-    [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
     rm -rf ${BASEDIR}storage/
     rm -rf ${BASEDIR}db/
-    rm -rf ${BASEDIR}logs/
-     kill %sar
+    #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log
+    #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log
+    #rm -rf ${BASEDIR}logs/
+    kill %sar
     [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
     echo >>${BASEDIR}inspectit.log
     echo >>${BASEDIR}inspectit.log
@@ -175,6 +176,7 @@ done
 zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
 rm -rf ${RESULTSDIR}stat/
 mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.log
+mv ${BASEDIR}logs/ ${RESULTSDIR}
 [ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log
 [ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR}
 
diff --git a/frameworks/inspectIT/config/isequence/inspectit-agent.cfg b/frameworks/inspectIT/config/isequence/inspectit-agent.cfg
new file mode 100644
index 0000000..f81e35b
--- /dev/null
+++ b/frameworks/inspectIT/config/isequence/inspectit-agent.cfg
@@ -0,0 +1,49 @@
+## repository <IP> <port> <Agent Name>
+#############################################
+repository localhost 9070 inspectIT
+
+## method-sensor-type <name> <fully-qualified-name> <priority> [<additional options>]
+#####################################################################################
+# method-sensor-type average-timer info.novatec.inspectit.agent.sensor.method.averagetimer.AverageTimerSensor HIGH stringLength=100
+method-sensor-type timer info.novatec.inspectit.agent.sensor.method.timer.TimerSensor MAX stringLength=100
+method-sensor-type isequence info.novatec.inspectit.agent.sensor.method.invocationsequence.InvocationSequenceSensor INVOC stringLength=100
+method-sensor-type jdbc-connection info.novatec.inspectit.agent.sensor.method.jdbc.ConnectionSensor MIN
+method-sensor-type jdbc-prepared-statement info.novatec.inspectit.agent.sensor.method.jdbc.PreparedStatementSensor MIN stringLength=1000
+method-sensor-type jdbc-prepared-statement-parameter info.novatec.inspectit.agent.sensor.method.jdbc.PreparedStatementParameterSensor MIN
+method-sensor-type jdbc-statement info.novatec.inspectit.agent.sensor.method.jdbc.StatementSensor MIN stringLength=1000
+
+## exception-sensor-type <fully-qualified-name> [<additional options>]
+######################################################################
+exception-sensor-type info.novatec.inspectit.agent.sensor.exception.ExceptionSensor mode=simple stringLength=500
+
+## platform-sensor-type <fully-qualified-name> [<additional options>]
+#####################################################################
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.ClassLoadingInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.CompilationInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.MemoryInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.CpuInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.RuntimeInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.SystemInformation
+platform-sensor-type info.novatec.inspectit.agent.sensor.platform.ThreadInformation
+
+## send-strategy <fully-qualified-name>
+#######################################
+send-strategy info.novatec.inspectit.agent.sending.impl.TimeStrategy time=5000
+
+## buffer-strategy <fully-qualified-name>
+#########################################
+buffer-strategy info.novatec.inspectit.agent.buffer.impl.SimpleBufferStrategy
+
+## Ignore classes settings
+#########################################
+exclude-class info.novatec.inspectit.*
+exclude-class $Proxy*
+exclude-class sun.*
+exclude-class java.lang.ThreadLocal
+exclude-class java.lang.ref.Reference
+exclude-class *_WLStub
+exclude-class *[]
+
+## INSTRUMENTATION
+##################
+sensor isequence mooBench.monitoredApplication.MonitoredClass monitoredMethod interface=true p=0;Source; f=LastOperator;lastOperator f=LastOutput;jlbOutput.text
diff --git a/frameworks/inspectIT/config/full/inspectit-agent.cfg b/frameworks/inspectIT/config/timer/inspectit-agent.cfg
similarity index 100%
rename from frameworks/inspectIT/config/full/inspectit-agent.cfg
rename to frameworks/inspectIT/config/timer/inspectit-agent.cfg
-- 
GitLab