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