diff --git a/pom.xml b/pom.xml
index 6ea7312..ece25e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,7 +36,7 @@
3.2.4
4.1.69.Final
2.11.0
- 3.0.3
+ 2.35
4.2.0
5.0.0
UTF-8
diff --git a/scripts/collect-jars.sh b/scripts/collect-jars.sh
index b02a66b..73ee402 100755
--- a/scripts/collect-jars.sh
+++ b/scripts/collect-jars.sh
@@ -1,9 +1,6 @@
-if [ ! -d ../docker/jars ]; then rm -rf ../docker/jars; fi
+if [ -d ../docker/jars ]; then rm -rf ../docker/jars; fi
mkdir -p ../docker/jars
-if [ ! -d ../docker/data ]; then rm -rf ../docker/data; fi
-mkdir -p ../docker/data
-
mkdir -p ../docker/jars/cxf-jetty
cp ../modules/cxf-jetty/target/cxf-jetty-1.0-SNAPSHOT.jar ../docker/jars/cxf-jetty/app.jar
mkdir -p ../docker/jars/cxf-netty
diff --git a/scripts/lua/dump_get.lua b/scripts/lua/dump_get.lua
index 55c63c0..f9886af 100644
--- a/scripts/lua/dump_get.lua
+++ b/scripts/lua/dump_get.lua
@@ -1,28 +1,6 @@
-
function done(summary, latency, requests)
- file = io.open('docker/data/get.json', 'w')
- io.output(file)
-
- io.write(string.format("{\n"))
-
- io.write(string.format(" \"summary\": {\n"))
- io.write(string.format(" \"duration_microseconds\": %d,\n", summary.duration))
- io.write(string.format(" \"num_requests\": %d,\n", summary.requests))
- io.write(string.format(" \"total_bytes\": %d,\n", summary.bytes))
- io.write(string.format(" \"requests_per_sec\": %.2f,\n", summary.requests/(summary.duration)))
- io.write(string.format(" \"bytes_per_sec\": \"%.2f\"\n", summary.bytes/summary.duration))
- io.write(string.format(" },\n"))
-
- io.write(string.format(" \"latency\": {\n"))
- io.write(string.format(" \"min_microseconds\": %.2f,\n", latency.min))
- io.write(string.format(" \"max_microseconds\": %.2f,\n", latency.max))
- io.write(string.format(" \"mean_microseconds\": %.2f,\n", latency.mean))
- io.write(string.format(" \"stdev_microseconds\": %.2f,\n", latency.stdev))
- io.write(string.format(" \"percentile_90_microseconds\": %.2f,\n", latency:percentile(90.0)))
- io.write(string.format(" \"percentile_95_microseconds\": %.2f,\n", latency:percentile(95.0)))
- io.write(string.format(" \"percentile_99_microseconds\": %.2f\n", latency:percentile(99.0)))
- io.write(string.format(" }\n"))
-
-
- io.write(string.format("}\n"))
- end
\ No newline at end of file
+ file = io.open('../docker/data/get.csv', 'w')
+ io.output(file)
+ io.write("\"duration_microseconds\",\"num_requests\",\"total_bytes\",\"requests_per_sec\",\"bytes_per_sec\",\"min_microseconds\",\"max_microseconds\",\"mean_microseconds\",\"stdev_microseconds\",\"percentile_90_microseconds\",\"percentile_95_microseconds\",\"percentile_99_microseconds\"\n")
+ io.write(string.format("%d,%d,%d,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",summary.duration,summary.requests,summary.bytes,summary.requests/(summary.duration),(summary.bytes/summary.duration),latency.min,latency.max,latency.mean,latency.stdev,latency:percentile(90.0),latency:percentile(95.0),latency:percentile(99.0)))
+end
\ No newline at end of file
diff --git a/scripts/lua/dump_index.lua b/scripts/lua/dump_index.lua
index 8da2237..5af055c 100644
--- a/scripts/lua/dump_index.lua
+++ b/scripts/lua/dump_index.lua
@@ -1,28 +1,6 @@
-
function done(summary, latency, requests)
- file = io.open('docker/data/index.json', 'w')
- io.output(file)
-
- io.write(string.format("{\n"))
-
- io.write(string.format(" \"summary\": {\n"))
- io.write(string.format(" \"duration_microseconds\": %d,\n", summary.duration))
- io.write(string.format(" \"num_requests\": %d,\n", summary.requests))
- io.write(string.format(" \"total_bytes\": %d,\n", summary.bytes))
- io.write(string.format(" \"requests_per_sec\": %.2f,\n", summary.requests/(summary.duration)))
- io.write(string.format(" \"bytes_per_sec\": \"%.2f\"\n", summary.bytes/summary.duration))
- io.write(string.format(" },\n"))
-
- io.write(string.format(" \"latency\": {\n"))
- io.write(string.format(" \"min_microseconds\": %.2f,\n", latency.min))
- io.write(string.format(" \"max_microseconds\": %.2f,\n", latency.max))
- io.write(string.format(" \"mean_microseconds\": %.2f,\n", latency.mean))
- io.write(string.format(" \"stdev_microseconds\": %.2f,\n", latency.stdev))
- io.write(string.format(" \"percentile_90_microseconds\": %.2f,\n", latency:percentile(90.0)))
- io.write(string.format(" \"percentile_95_microseconds\": %.2f,\n", latency:percentile(95.0)))
- io.write(string.format(" \"percentile_99_microseconds\": %.2f\n", latency:percentile(99.0)))
- io.write(string.format(" }\n"))
-
-
- io.write(string.format("}\n"))
- end
\ No newline at end of file
+ file = io.open('../docker/data/index.csv', 'w')
+ io.output(file)
+ io.write("\"duration_microseconds\",\"num_requests\",\"total_bytes\",\"requests_per_sec\",\"bytes_per_sec\",\"min_microseconds\",\"max_microseconds\",\"mean_microseconds\",\"stdev_microseconds\",\"percentile_90_microseconds\",\"percentile_95_microseconds\",\"percentile_99_microseconds\"\n")
+ io.write(string.format("%d,%d,%d,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",summary.duration,summary.requests,summary.bytes,summary.requests/(summary.duration),(summary.bytes/summary.duration),latency.min,latency.max,latency.mean,latency.stdev,latency:percentile(90.0),latency:percentile(95.0),latency:percentile(99.0)))
+end
\ No newline at end of file
diff --git a/scripts/lua/dump_post.lua b/scripts/lua/dump_post.lua
index b935fd4..95634ab 100644
--- a/scripts/lua/dump_post.lua
+++ b/scripts/lua/dump_post.lua
@@ -1,29 +1,8 @@
wrk.method = "POST"
function done(summary, latency, requests)
- file = io.open('docker/data/post.json', 'w')
- io.output(file)
-
- io.write(string.format("{\n"))
-
- io.write(string.format(" \"summary\": {\n"))
- io.write(string.format(" \"duration_microseconds\": %d,\n", summary.duration))
- io.write(string.format(" \"num_requests\": %d,\n", summary.requests))
- io.write(string.format(" \"total_bytes\": %d,\n", summary.bytes))
- io.write(string.format(" \"requests_per_sec\": %.2f,\n", summary.requests/(summary.duration)))
- io.write(string.format(" \"bytes_per_sec\": \"%.2f\"\n", summary.bytes/summary.duration))
- io.write(string.format(" },\n"))
-
- io.write(string.format(" \"latency\": {\n"))
- io.write(string.format(" \"min_microseconds\": %.2f,\n", latency.min))
- io.write(string.format(" \"max_microseconds\": %.2f,\n", latency.max))
- io.write(string.format(" \"mean_microseconds\": %.2f,\n", latency.mean))
- io.write(string.format(" \"stdev_microseconds\": %.2f,\n", latency.stdev))
- io.write(string.format(" \"percentile_90_microseconds\": %.2f,\n", latency:percentile(90.0)))
- io.write(string.format(" \"percentile_95_microseconds\": %.2f,\n", latency:percentile(95.0)))
- io.write(string.format(" \"percentile_99_microseconds\": %.2f\n", latency:percentile(99.0)))
- io.write(string.format(" }\n"))
-
-
- io.write(string.format("}\n"))
- end
\ No newline at end of file
+ file = io.open('../docker/data/post.csv', 'w')
+ io.output(file)
+ io.write("\"duration_microseconds\",\"num_requests\",\"total_bytes\",\"requests_per_sec\",\"bytes_per_sec\",\"min_microseconds\",\"max_microseconds\",\"mean_microseconds\",\"stdev_microseconds\",\"percentile_90_microseconds\",\"percentile_95_microseconds\",\"percentile_99_microseconds\"\n")
+ io.write(string.format("%d,%d,%d,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",summary.duration,summary.requests,summary.bytes,summary.requests/(summary.duration),(summary.bytes/summary.duration),latency.min,latency.max,latency.mean,latency.stdev,latency:percentile(90.0),latency:percentile(95.0),latency:percentile(99.0)))
+end
\ No newline at end of file
diff --git a/scripts/test-all.sh b/scripts/test-all.sh
new file mode 100755
index 0000000..7ee66fb
--- /dev/null
+++ b/scripts/test-all.sh
@@ -0,0 +1,39 @@
+./collect-jars.sh
+
+test () {
+ parentdir="$(dirname "$(pwd)")"
+
+ xterm -e "docker run --rm -it -p 8080:8080 -w /root -v $parentdir/docker/jars/$1:/root $2:$3 java -jar app.jar" &
+ TEST_DOCKER_PID=$!
+ sleep 1
+ ./wrk-test.sh $1 $2 $3 12 100 15
+ sleep 1
+ kill $TEST_DOCKER_PID
+ sleep 1
+}
+modules=( 'quarkus-resteasy-jackson' 'quarkus-resteasy-jsonb' 'jersey-grizzly2' 'jersey-jdk-http' 'jersey-simple-http' 'jersey-jetty' 'jersey-netty' 'jersey-netty' 'jersey-netty' 'jersey-netty' 'rawnetty' 'jooby-netty' 'jooby-jetty' 'jooby-undertow' 'resteasy-jdk-http' 'resteasy-netty' 'resteasy-reactor-netty' 'resteasy-vertx' 'resteasy-undertow' 'cxf-jetty' 'cxf-netty' 'cxf-undertow' )
+versions=( '8' '11' '17' )
+for version in "${versions[@]}"
+do
+ jkds=( 'amazoncorretto' 'azul/zulu-openjdk' 'azul/zulu-openjdk-alpine' 'eclipse-temurin' 'openjdk' )
+ for jdk in "${jkds[@]}"
+ do
+ for module in "${modules[@]}"
+ do
+ test $version $jdk $module
+ done
+ done
+done
+
+versions=( '8-alpine' '11-alpine' '17-alpine' )
+for version in "${versions[@]}"
+do
+ jkds=( 'amazoncorretto' 'eclipse-temurin' 'openjdk' )
+ for jdk in "${jkds[@]}"
+ do
+ for module in "${modules[@]}"
+ do
+ test $version $jdk $module
+ done
+ done
+done
diff --git a/scripts/wrk-test.sh b/scripts/wrk-test.sh
index 52b9398..40960b6 100755
--- a/scripts/wrk-test.sh
+++ b/scripts/wrk-test.sh
@@ -1,12 +1,18 @@
-echo "Module: $1";
-echo "Threads: $2";
-echo "Connections: $3";
-echo "Duration: $4";
-
-wrk -t$2 -c$3 -d$4s -s ./scripts/lua/dump_index.lua http://127.0.0.1:8080/test/
-wrk -t$2 -c$3 -d$4s -s ./scripts/lua/dump_get.lua http://127.0.0.1:8080/test/100
-wrk -t$2 -c$3 -d$4s -s ./scripts/lua/dump_post.lua http://127.0.0.1:8080/test/100
-
-mv ./docker/data/index.json ./docker/data/index-$1.json
-mv ./docker/data/get.json ./docker/data/get-$1.json
-mv ./docker/data/post.json ./docker/data/post-$1.json
\ No newline at end of file
+# echo "Module: $1";
+# echo "JDK image: $2";
+# echo "JDK version: $3";
+# echo "Threads: $4";
+# echo "Connections: $5";
+# echo "Duration: $6";
+
+jdk_suffix=$2
+jdkim="$(echo $jdk_suffix | sed -e 's/\//@/g')"
+
+wrk -t$4 -c$5 -d$6s -s ./lua/dump_index.lua http://127.0.0.1:8080/test/
+mv ../docker/data/index.csv ../docker/data/index_$3_$1_$jdkim.csv
+
+wrk -t$4 -c$5 -d$6s -s ./lua/dump_get.lua http://127.0.0.1:8080/test/100
+mv ../docker/data/get.csv ../docker/data/get_$3_$1_$jdkim.csv
+
+wrk -t$4 -c$5 -d$6s -s ./lua/dump_post.lua http://127.0.0.1:8080/test/100
+mv ../docker/data/post.csv ../docker/data/post_$3_$1_$jdkim.csv
\ No newline at end of file