You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2017/07/28 19:14:48 UTC
qpid-jms git commit: QPIDJMS-306 Use a more efficient data structure
for fifo queue
Repository: qpid-jms
Updated Branches:
refs/heads/master 62e30c0fc -> a08ebec01
QPIDJMS-306 Use a more efficient data structure for fifo queue
The LinkedList is unnecessary given the usage and creates more overhead
managing the list nodes. The simpler ArrayDeque servers the purpose
better and has less GC overhead
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/a08ebec0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/a08ebec0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/a08ebec0
Branch: refs/heads/master
Commit: a08ebec01fd75ff126b3d5f2ee9a2e70bdf9cf83
Parents: 62e30c0
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Jul 28 15:14:23 2017 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Jul 28 15:14:23 2017 -0400
----------------------------------------------------------------------
.../apache/qpid/jms/util/FifoMessageQueue.java | 27 ++++++++++----------
1 file changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/a08ebec0/qpid-jms-client/src/main/java/org/apache/qpid/jms/util/FifoMessageQueue.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/util/FifoMessageQueue.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/util/FifoMessageQueue.java
index ad07c26..7a2a4ba 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/util/FifoMessageQueue.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/util/FifoMessageQueue.java
@@ -16,8 +16,9 @@
*/
package org.apache.qpid.jms.util;
+import java.util.ArrayDeque;
import java.util.ArrayList;
-import java.util.LinkedList;
+import java.util.Deque;
import java.util.List;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
@@ -27,12 +28,12 @@ import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
*/
public final class FifoMessageQueue extends AbstractMessageQueue {
- protected final LinkedList<JmsInboundMessageDispatch> list = new LinkedList<JmsInboundMessageDispatch>();
+ protected final Deque<JmsInboundMessageDispatch> queue = new ArrayDeque<JmsInboundMessageDispatch>();
@Override
public void enqueueFirst(JmsInboundMessageDispatch envelope) {
synchronized (getLock()) {
- list.addFirst(envelope);
+ queue.addFirst(envelope);
getLock().notify();
}
}
@@ -40,7 +41,7 @@ public final class FifoMessageQueue extends AbstractMessageQueue {
@Override
public void enqueue(JmsInboundMessageDispatch envelope) {
synchronized (getLock()) {
- list.addLast(envelope);
+ queue.addLast(envelope);
getLock().notify();
}
}
@@ -48,32 +49,32 @@ public final class FifoMessageQueue extends AbstractMessageQueue {
@Override
public boolean isEmpty() {
synchronized (getLock()) {
- return list.isEmpty();
+ return queue.isEmpty();
}
}
@Override
public int size() {
synchronized (getLock()) {
- return list.size();
+ return queue.size();
}
}
@Override
public void clear() {
synchronized (getLock()) {
- list.clear();
+ queue.clear();
}
}
@Override
public List<JmsInboundMessageDispatch> removeAll() {
synchronized (getLock()) {
- ArrayList<JmsInboundMessageDispatch> rc = new ArrayList<JmsInboundMessageDispatch>(list.size());
- for (JmsInboundMessageDispatch entry : list) {
+ ArrayList<JmsInboundMessageDispatch> rc = new ArrayList<JmsInboundMessageDispatch>(queue.size());
+ for (JmsInboundMessageDispatch entry : queue) {
rc.add(entry);
}
- list.clear();
+ queue.clear();
return rc;
}
}
@@ -81,17 +82,17 @@ public final class FifoMessageQueue extends AbstractMessageQueue {
@Override
public String toString() {
synchronized (getLock()) {
- return list.toString();
+ return queue.toString();
}
}
@Override
protected JmsInboundMessageDispatch removeFirst() {
- return list.removeFirst();
+ return queue.removeFirst();
}
@Override
protected JmsInboundMessageDispatch peekFirst() {
- return list.peekFirst();
+ return queue.peekFirst();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org