diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2009-05-23 13:35:38 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2009-05-23 13:35:38 +0000 |
| commit | 67aca96746d64f088d254ef23ab831a3b8f7b4df (patch) | |
| tree | c1702c30090b2eac869e1d708ab3313d8121374d /java/testkit/src | |
| parent | 36319d26120c163c0c36598038859dad716ac358 (diff) | |
| download | qpid-python-67aca96746d64f088d254ef23ab831a3b8f7b4df.tar.gz | |
The default value for message cache is set to false.
Added the functionality to support variable message sizes using -Drandom_msg_size=true.
This will create an array of payloads from 1 byte to x bytes where x is configured by -Dmsg_size=x (default is 1024).
The Random number generator works of the same seed so different test runs can be compared properly.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@777922 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/testkit/src')
| -rw-r--r-- | java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java | 48 | ||||
| -rw-r--r-- | java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java | 10 |
2 files changed, 52 insertions, 6 deletions
diff --git a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java index e9421d7f22..30885ab461 100644 --- a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java +++ b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java @@ -20,6 +20,10 @@ */ package org.apache.qpid.testkit.perf; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + import javax.jms.BytesMessage; import javax.jms.DeliveryMode; import javax.jms.Message; @@ -54,7 +58,13 @@ public class PerfProducer extends PerfBase MessageProducer producer; Message msg; byte[] payload; - + List<byte[]> payloads; + boolean cacheMsg = false; + boolean randomMsgSize = false; + boolean durable = false; + Random random; + int msgSizeRange = 1024; + public PerfProducer() { super(); @@ -65,16 +75,32 @@ public class PerfProducer extends PerfBase super.setUp(); feedbackDest = session.createTemporaryQueue(); + durable = params.isDurable(); + // if message caching is enabled we pre create the message // else we pre create the payload if (params.isCacheMessage()) { + cacheMsg = true; + msg = MessageFactory.createBytesMessage(session, params.getMsgSize()); - msg.setJMSDeliveryMode(params.isDurable()? + msg.setJMSDeliveryMode(durable? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT ); } + else if (params.isRandomMsgSize()) + { + random = new Random(20080921); + randomMsgSize = true; + msgSizeRange = params.getMsgSize(); + payloads = new ArrayList<byte[]>(msgSizeRange); + + for (int i=1; i < msgSizeRange; i++) + { + payloads.add(MessageFactory.createMessagePayload(i).getBytes()); + } + } else { payload = MessageFactory.createMessagePayload(params.getMsgSize()).getBytes(); @@ -87,14 +113,26 @@ public class PerfProducer extends PerfBase protected Message getNextMessage() throws Exception { - if (params.isCacheMessage()) + if (cacheMsg) { return msg; } else - { + { msg = session.createBytesMessage(); - ((BytesMessage)msg).writeBytes(payload); + + if (!randomMsgSize) + { + ((BytesMessage)msg).writeBytes(payload); + } + else + { + ((BytesMessage)msg).writeBytes(payloads.get(random.nextInt(msgSizeRange))); + } + msg.setJMSDeliveryMode(durable? + DeliveryMode.PERSISTENT : + DeliveryMode.NON_PERSISTENT + ); return msg; } } diff --git a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java index 924fa24fa5..2612af36e1 100644 --- a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java +++ b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java @@ -38,7 +38,7 @@ public class TestParams private int msg_type = 1; // not used yet - private boolean cacheMessage = true; + private boolean cacheMessage = false; private boolean disableMessageID = false; @@ -55,6 +55,8 @@ public class TestParams private int msg_count = 10; private int warmup_count = 1; + + private boolean random_msg_size = false; public TestParams() { @@ -75,6 +77,7 @@ public class TestParams ack_mode = Integer.getInteger("ack_mode",Session.AUTO_ACKNOWLEDGE); msg_count = Integer.getInteger("msg_count",msg_count); warmup_count = Integer.getInteger("warmup_count",warmup_count); + random_msg_size = Boolean.getBoolean("random_msg_size"); } public int getAckMode() @@ -156,5 +159,10 @@ public class TestParams { return disableTimestamp; } + + public boolean isRandomMsgSize() + { + return random_msg_size; + } } |
