You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by co...@apache.org on 2020/04/17 00:47:34 UTC
[dubbo-benchmark] 08/16: Support -f output to file
This is an automated email from the ASF dual-hosted git repository.
codingsinger pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-benchmark.git
commit 5aaf493e5453cd99f3d4af30b51f1f1cfb25257d
Author: zonghaishang <yi...@apache.org>
AuthorDate: Mon Sep 17 13:13:28 2018 +0800
Support -f output to file
---
README.md | 4 +--
benchmark.sh | 32 ++++++++++++++--------
.../java/org/apache/dubbo/benchmark/Client.java | 22 +++++++++++----
3 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index b91ade0..8d9d2b6 100644
--- a/README.md
+++ b/README.md
@@ -28,8 +28,8 @@ Clone this project onto your desktop, then
./benchmark.sh dubbo-kryo-client
```
-## Specify hostname and port for service
+## Specify hostname, port and output file for service
```bash
-./benchmark.sh -s [hostname|ip address] -p port
+./benchmark.sh -s [hostname|ip address] -p port -f output
```
\ No newline at end of file
diff --git a/benchmark.sh b/benchmark.sh
index e4b1c3c..af5f2ff 100755
--- a/benchmark.sh
+++ b/benchmark.sh
@@ -1,7 +1,13 @@
#!/usr/bin/env bash
usage() {
- echo "Usage: ${PROGRAM_NAME} -m {profiling|benchmark} -s hostname -p port dirname"
+ echo "Usage: ${PROGRAM_NAME} command dirname"
+ echo "command: [m|s|p|f]"
+ echo " -m [profiling|benchmark], specify benchmark mode"
+ echo " -s hostname, host name"
+ echo " -p port, port number"
+ echo " -f output file path"
+ echo "dirname: test module name"
}
build() {
@@ -18,10 +24,10 @@ java_options() {
JAVA_OPTIONS="-server -Xmx1g -Xms1g -XX:MaxDirectMemorySize=1g -XX:+UseG1GC"
if [ "x${MODE}" = "xprofiling" ]; then
JAVA_OPTIONS="${JAVA_OPTIONS} \
--XX:+UnlockCommercialFeatures \
--XX:+FlightRecorder \
--XX:StartFlightRecording=duration=30s,filename=${PROJECT_DIR}.jfr \
--XX:FlightRecorderOptions=stackdepth=256"
+ -XX:+UnlockCommercialFeatures \
+ -XX:+FlightRecorder \
+ -XX:StartFlightRecording=duration=30s,filename=${PROJECT_DIR}.jfr \
+ -XX:FlightRecorderOptions=stackdepth=256"
fi
}
@@ -30,7 +36,7 @@ run() {
JAR=`find ${PROJECT_DIR}/target/*.jar | head -n 1`
echo
echo "RUN ${PROJECT_DIR} IN ${MODE:-benchmark} MODE"
- CMD="java ${JAVA_OPTIONS} -Dserver.host=${SERVER} -Dserver.port=${PORT} -jar ${JAR}"
+ CMD="java ${JAVA_OPTIONS} -Dserver.host=${SERVER} -Dserver.port=${PORT} -Dbenchmark.output=${OUTPUT} -jar ${JAR}"
echo "command is: ${CMD}"
echo
${CMD}
@@ -41,14 +47,11 @@ PROGRAM_NAME=$0
MODE="benchmark"
SERVER="localhost"
PORT="8080"
+OUTPUT=""
OPTIND=1
-while getopts "h?m:s:p:" opt; do
+while getopts "m:s:p:f:" opt; do
case "$opt" in
- h|\?)
- usage
- exit 0
- ;;
m)
MODE=${OPTARG}
;;
@@ -58,6 +61,13 @@ while getopts "h?m:s:p:" opt; do
p)
PORT=${OPTARG}
;;
+ f)
+ OUTPUT=${OPTARG}
+ ;;
+ ?)
+ usage
+ exit 0
+ ;;
esac
done
diff --git a/client-base/src/main/java/org/apache/dubbo/benchmark/Client.java b/client-base/src/main/java/org/apache/dubbo/benchmark/Client.java
index e6f9051..8b52142 100644
--- a/client-base/src/main/java/org/apache/dubbo/benchmark/Client.java
+++ b/client-base/src/main/java/org/apache/dubbo/benchmark/Client.java
@@ -1,6 +1,7 @@
package org.apache.dubbo.benchmark;
import com.alibaba.dubbo.config.ProtocolConfig;
+
import org.apache.dubbo.benchmark.bean.Page;
import org.apache.dubbo.benchmark.bean.User;
import org.apache.dubbo.benchmark.rpc.AbstractClient;
@@ -12,8 +13,8 @@ import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
-import org.openjdk.jmh.results.format.ResultFormatType;
import org.openjdk.jmh.runner.Runner;
+import org.openjdk.jmh.runner.options.ChainedOptionsBuilder;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import org.openjdk.jmh.runner.options.TimeValue;
@@ -42,8 +43,8 @@ public class Client extends AbstractClient {
@TearDown
public void close() throws IOException {
- context.close();
ProtocolConfig.destroyAll();
+ context.close();
}
@Benchmark
@@ -79,17 +80,26 @@ public class Client extends AbstractClient {
}
public static void main(String[] args) throws Exception {
- Options opt = new OptionsBuilder()
+ Options opt;
+ ChainedOptionsBuilder optBuilder = new OptionsBuilder()
.include(Client.class.getSimpleName())
.warmupIterations(3)
.warmupTime(TimeValue.seconds(10))
.measurementIterations(3)
.measurementTime(TimeValue.seconds(10))
.threads(CONCURRENCY)
-// .resultFormat(ResultFormatType.JSON)
- .forks(1)
- .build();
+ .forks(1);
+
+ opt = doOptions(optBuilder).build();
new Runner(opt).run();
}
+
+ private static ChainedOptionsBuilder doOptions(ChainedOptionsBuilder optBuilder) {
+ String output = System.getProperty("benchmark.output");
+ if (output != null && !output.trim().isEmpty()) {
+ optBuilder.output(output);
+ }
+ return optBuilder;
+ }
}