You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2009/05/23 15:35:38 UTC
svn commit: r777922 - in
/qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf:
PerfProducer.java TestParams.java
Author: rajith
Date: Sat May 23 13:35:38 2009
New Revision: 777922
URL: http://svn.apache.org/viewvc?rev=777922&view=rev
Log:
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.
Modified:
qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java
qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java
Modified: qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java?rev=777922&r1=777921&r2=777922&view=diff
==============================================================================
--- qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java (original)
+++ qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java Sat May 23 13:35:38 2009
@@ -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 @@
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 @@
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 @@
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;
}
}
Modified: qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java?rev=777922&r1=777921&r2=777922&view=diff
==============================================================================
--- qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java (original)
+++ qpid/trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java Sat May 23 13:35:38 2009
@@ -38,7 +38,7 @@
private int msg_type = 1; // not used yet
- private boolean cacheMessage = true;
+ private boolean cacheMessage = false;
private boolean disableMessageID = false;
@@ -55,6 +55,8 @@
private int msg_count = 10;
private int warmup_count = 1;
+
+ private boolean random_msg_size = false;
public TestParams()
{
@@ -75,6 +77,7 @@
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 @@
{
return disableTimestamp;
}
+
+ public boolean isRandomMsgSize()
+ {
+ return random_msg_size;
+ }
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org