Speedup ChannelOutboundQueue flush end 49/20949/1
authorRobert Varga <rovarga@cisco.com>
Tue, 12 May 2015 15:34:05 +0000 (17:34 +0200)
committerMichal Polkorab <michal.polkorab@pantheon.sk>
Fri, 22 May 2015 11:01:18 +0000 (13:01 +0200)
At the end of a flush we report statistics at debug, but that requires
System.nanoTime(). Make that call conditional on debug being enabled.

Change-Id: Ibdf02b93ca12d8930227de059d107aa3c4ccb88d
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit d25d4e071936d072cd4a847f4414bfe560bfd8a4)

openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ChannelOutboundQueue.java

index 73812930bc69e9783763613895817d6abe08c86d..a3ce3d5ef1012d1630df682f23341caad1e96c4e 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.openflowjava.protocol.impl.core.connection;
 
+import com.google.common.base.Preconditions;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelHandlerContext;
@@ -15,19 +16,15 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.util.concurrent.EventExecutor;
 import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.GenericFutureListener;
-
 import java.net.InetSocketAddress;
 import java.util.Queue;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Preconditions;
-
 /**
  * Channel handler which bypasses wraps on top of normal Netty pipeline, allowing
  * writes to be enqueued from any thread, it then schedules a task pipeline task,
@@ -215,9 +212,11 @@ final class ChannelOutboundQueue extends ChannelInboundHandlerAdapter {
             channel.flush();
         }
 
-        final long stop = System.nanoTime();
-        LOG.debug("Flushed {} messages in {}us to channel {}",
+        if (LOG.isDebugEnabled()) {
+            final long stop = System.nanoTime();
+            LOG.debug("Flushed {} messages in {}us to channel {}",
                 messages, TimeUnit.NANOSECONDS.toMicros(stop - start), channel);
+        }
 
         /*
          * We are almost ready to terminate. This is a bit tricky, because