8000 Merge pull request #170 from abousselmi/master · CassOnMars/rabbitmq-java-client@a4e9669 · GitHub
[go: up one dir, main page]

Skip to content

Commit a4e9669

Browse files
authored
Merge pull request rabbitmq#170 from abousselmi/master
ID for PerfTest jobs and unique system out for better output in multithreading.
2 parents fb0c313 + 56686ae commit a4e9669

File tree

1 file changed

+36
-23
lines changed

1 file changed

+36
-23
lines changed

src/test/java/com/rabbitmq/examples/PerfTest.java

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
package com.rabbitmq.examples;
1717

18+
import java.text.SimpleDateFormat;
1819
import java.util.Arrays;
20+
import java.util.Calendar;
1921
import java.util.List;
2022

2123
import com.rabbitmq.examples.perf.MulticastParams;
@@ -33,6 +35,7 @@
3335

3436

3537
public class PerfTest {
38+
3639
public static void main(String[] args) {
3740
Options options = getOptions();
3841
CommandLineParser parser = new GnuParser();
@@ -43,7 +46,9 @@ public static void main(String[] args) {
4346
usage(options);
4447
System.exit(0);
4548
}
46-
49+
String testID = new SimpleDateFormat("HHmmss-SSS").format(Calendar.
50+
getInstance().getTime());
51+
testID = strArg(cmd, 'd', "test-"+testID);
4752
String exchangeType = strArg(cmd, 't', "direct");
4853
String exchangeName = strArg(cmd, 'e', exchangeType);
4954
String queueName = strArg(cmd, 'u', "");
@@ -73,12 +78,13 @@ public static void main(String[] args) {
7378
String uri = strArg(cmd, 'h', "amqp://localhost");
7479

7580
//setup
76-
PrintlnStats stats = new PrintlnStats(1000L * samplingInterval,
77-
producerCount > 0,
78-
consumerCount > 0,
79-
(flags.contains("mandatory") ||
80-
flags.contains("immediate")),
81-
confirm != -1);
81+
PrintlnStats stats = new PrintlnStats(testID,
82+
1000L * samplingInterval,
83+
producerCount > 0,
84+
consumerCount > 0,
85+
(flags.contains("mandatory") ||
86+
flags.contains("immediate")),
87+
confirm != -1);
8288

8389
ConnectionFactory factory = new ConnectionFactory();
8490
factory.setShutdownTimeout(0); // So we still shut down even with slow consumers
@@ -135,6 +141,7 @@ private static void usage(Options options) {
135141
private static Options getOptions() {
136142
Options options = new Options();
137143
options.addOption(new Option("?", "help", false,"show usage"));
144+
options.addOption(new Option("d", "id", true, "Test ID"));
138145
options.addOption(new Option("h", "uri", true, "connection URI"));
139146
options.addOption(new Option("t", "type", true, "exchange type"));
140147
options.addOption(new Option("e", "exchange", true, "exchange name"));
@@ -191,42 +198,48 @@ private static class PrintlnStats extends Stats {
191198
private final boolean recvStatsEnabled;
192199
private final boolean returnStatsEnabled;
193200
private final boolean confirmStatsEnabled;
201+
202+
private final String testID;
194203

195-
public PrintlnStats(long interval,
204+
public PrintlnStats(String testID, long interval,
196205
boolean sendStatsEnabled, boolean recvStatsEnabled,
197206
boolean returnStatsEnabled, boolean confirmStatsEnabled) {
198207
super(interval);
199208
this.sendStatsEnabled = sendStatsEnabled;
200209
this.recvStatsEnabled = recvStatsEnabled;
201210
this.returnStatsEnabled = returnStatsEnabled;
202211
this.confirmStatsEnabled = confirmStatsEnabled;
212+
this.testID = testID;
203213
}
204214

205215
@Override
206216
protected void report(long now) {
207-
System.out.print("time: " + String.format("%.3f", (now - startTime)/1000.0) + "s");
208-
209-
showRate("sent", sendCountInterval, sendStatsEnabled, elapsedInterval);
210-
showRate("returned", returnCountInterval, sendStatsEnabled && returnStatsEnabled, elapsedInterval);
211-
showRate("confirmed", confirmCountInterval, sendStatsEnabled && confirmStatsEnabled, elapsedInterval);
212-
showRate("nacked", nackCountInterval, sendStatsEnabled && confirmStatsEnabled, elapsedInterval);
213-
showRate("received", recvCountInterval, recvStatsEnabled, elapsedInterval);
214-
215-
System.out.print((latencyCountInterval > 0 ?
217+
String output = "id: " + testID + ", ";
218+
219+
output += "time: " + String.format("%.3f", (now - startTime)/1000.0) + "s";
220+
output +=
221+
getRate("sent", sendCountInterval, sendStatsEnabled, elapsedInterval) +
222+
getRate("returned", returnCountInterval, sendStatsEnabled && returnStatsEnabled, elapsedInterval) +
223+
getRate("confirmed", confirmCountInterval, sendStatsEnabled && confirmStatsEnabled, elapsedInterval) +
224+
getRate("nacked", nackCountInterval, sendStatsEnabled && confirmStatsEnabled, elapsedInterval) +
225+
getRate("received", recvCountInterval, recvStatsEnabled, elapsedInterval);
226+
227+
output += (latencyCountInterval > 0 ?
216228
", min/avg/max latency: " +
217229
minLatency/1000L + "/" +
218230
cumulativeLatencyInterval / (1000L * latencyCountInterval) + "/" +
219231
maxLatency/1000L + " microseconds" :
220-
""));
232+
"");
221233

222-
System.out.println();
234+
System.out.println(output);
223235
}
224236

225-
private void showRate(String descr, long count, boolean display,
237+
private String getRate(String descr, long count, boolean display,
226238
long elapsed) {
227-
if (display) {
228-
System.out.print(", " + descr + ": " + formatRate(1000.0 * count / elapsed) + " msg/s");
229-
}
239+
if (display)
240+
return ", " + descr + ": " + formatRate(1000.0 * count / elapsed) + " msg/s";
241+
else
242+
return "";
230243
}
231244

232245
public void printFinal() {

0 commit comments

Comments
 (0)
0