From 291ee196f45bd603979c10ecacae117b41c60881 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 12 May 2015 17:34:05 +0200 Subject: [PATCH] Speedup ChannelOutboundQueue flush end 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 (cherry picked from commit d25d4e071936d072cd4a847f4414bfe560bfd8a4) --- .../impl/core/connection/ChannelOutboundQueue.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ChannelOutboundQueue.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ChannelOutboundQueue.java index 73812930..a3ce3d5e 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ChannelOutboundQueue.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ChannelOutboundQueue.java @@ -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 -- 2.36.6