summaryrefslogtreecommitdiff
path: root/cpp/src/tests/perftest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/tests/perftest.cpp')
-rw-r--r--cpp/src/tests/perftest.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/cpp/src/tests/perftest.cpp b/cpp/src/tests/perftest.cpp
index bf6b0fe4d5..8ba0f21fc5 100644
--- a/cpp/src/tests/perftest.cpp
+++ b/cpp/src/tests/perftest.cpp
@@ -89,7 +89,7 @@ struct Opts : public TestOptions {
Opts() :
TestOptions(helpText),
setup(false), control(false), publish(false), subscribe(false),
- pubs(1), count(500000), size(64), confirm(false), durable(false),
+ pubs(1), count(500000), size(1024), confirm(true), durable(false),
subs(1), ack(0),
qt(1), mode(SHARED), summary(false)
{
@@ -107,7 +107,7 @@ struct Opts : public TestOptions {
("npubs", optValue(pubs, "N"), "Create N publishers.")
("count", optValue(count, "N"), "Each publisher sends N messages.")
("size", optValue(size, "BYTES"), "Size of messages in bytes.")
- ("pub-confirm", optValue(confirm), "Publisher use confirm-mode.")
+ ("pub-confirm", optValue(confirm, "yes|no"), "Publisher use confirm-mode.")
("durable", optValue(durable, "yes|no"), "Publish messages as durable.")
("nsubs", optValue(subs, "N"), "Create N subscribers.")
@@ -115,7 +115,7 @@ struct Opts : public TestOptions {
"N==0: Subscriber uses unconfirmed mode")
("qt", optValue(qt, "N"), "Create N queues or topics.")
- ("summary,s", optValue(summary), "Summary output only.");
+ ("summary,s", optValue(summary), "Summary output: pubs/sec subs/sec transfers/sec Mbytes/sec");
}
// Computed values
@@ -315,20 +315,26 @@ struct Controller : public Client {
process(opts.totalSubs, "sub_done", boost::ref(subRates));
AbsTime end=now();
double time=secs(start, end);
-
+ double txrate=opts.transfers/time;
+ double mbytes=(txrate*opts.size)/(1024*1024);
+
if (!opts.summary) {
- cout << endl << "Publish rates: " << endl;
+ cout << endl << "Total " << opts.transfers << " transfers of "
+ << opts.size << " bytes in "
+ << time << " seconds." << endl;
+ cout << endl << "Publish transfers/sec: " << endl;
pubRates.print(cout);
- cout << endl << "Subscribe rates: " << endl;
+ cout << endl << "Subscribe transfers/sec: " << endl;
subRates.print(cout);
- cout << endl << "Total transfers: " << opts.transfers << endl;
- cout << "Total time (secs): " << time << endl;
- cout << "Total rate: " << opts.transfers/time << endl;
+ cout << endl
+ << "Total transfers/sec: " << txrate << endl
+ << "Total Mbytes/sec: " << mbytes << endl;
}
else {
cout << pubRates.mean() << "\t"
<< subRates.mean() << "\t"
- << opts.transfers/time << endl;
+ << txrate << "\t"
+ << mbytes << endl;
}
}
catch (const std::exception& e) {