Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 323DF184A6 for ; Thu, 23 Jul 2015 12:06:05 +0000 (UTC) Received: (qmail 19083 invoked by uid 500); 23 Jul 2015 12:06:05 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 19013 invoked by uid 500); 23 Jul 2015 12:06:05 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 18803 invoked by uid 99); 23 Jul 2015 12:06:05 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Jul 2015 12:06:05 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B4CD0E41A5; Thu, 23 Jul 2015 12:06:04 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: robbie@apache.org To: commits@qpid.apache.org Date: Thu, 23 Jul 2015 12:06:09 -0000 Message-Id: <95d44353c4cb45deb1fc394d7fc6c865@git.apache.org> In-Reply-To: <6687969c6328457790170664881fead9@git.apache.org> References: <6687969c6328457790170664881fead9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [06/10] qpid-proton git commit: PROTON-956: avoid overhead of creating frame and payload duplicate objects for logging or tracing if the logging is disabled and there is no tracer PROTON-956: avoid overhead of creating frame and payload duplicate objects for logging or tracing if the logging is disabled and there is no tracer Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/13682652 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/13682652 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/13682652 Branch: refs/heads/master Commit: 13682652f635544e82c29aa16654fe5031a143db Parents: b0f3a98 Author: Robert Gemmell Authored: Thu Jul 23 12:56:41 2015 +0100 Committer: Robert Gemmell Committed: Thu Jul 23 12:56:41 2015 +0100 ---------------------------------------------------------------------- .../qpid/proton/engine/impl/FrameWriter.java | 35 +++++++++++--------- .../qpid/proton/engine/impl/TransportImpl.java | 7 +++- 2 files changed, 26 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/13682652/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java index b23932a..4c2cc9d 100644 --- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java +++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java @@ -154,23 +154,28 @@ class FrameWriter } int payloadSize = Math.min(payload == null ? 0 : payload.remaining(), capacity); - ByteBuffer originalPayload = null; - if( payload!=null ) + ProtocolTracer tracer = _protocolTracer == null ? null : _protocolTracer.get(); + if( tracer != null || _transport.isTraceFramesEnabled()) { - originalPayload = payload.duplicate(); - originalPayload.limit(payload.position() + payloadSize); - } - - // XXX: this is a bit of a hack but it eliminates duplicate - // code, further refactor will fix this - if (_frameType == AMQP_FRAME_TYPE) { - TransportFrame frame = new TransportFrame(channel, (FrameBody) frameBody, Binary.create(originalPayload)); - _transport.log(TransportImpl.OUTGOING, frame); - - ProtocolTracer tracer = _protocolTracer.get(); - if(tracer != null) + // XXX: this is a bit of a hack but it eliminates duplicate + // code, further refactor will fix this + if (_frameType == AMQP_FRAME_TYPE) { - tracer.sentFrame(frame); + ByteBuffer originalPayload = null; + if( payload!=null ) + { + originalPayload = payload.duplicate(); + originalPayload.limit(payload.position() + payloadSize); + } + + Binary payloadBin = Binary.create(originalPayload); + TransportFrame frame = new TransportFrame(channel, (FrameBody) frameBody, payloadBin); + _transport.log(TransportImpl.OUTGOING, frame); + + if(tracer != null) + { + tracer.sentFrame(frame); + } } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/13682652/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java ---------------------------------------------------------------------- diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java index 95a811b..3c472b0 100644 --- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java +++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java @@ -1589,7 +1589,7 @@ public class TransportImpl extends EndpointImpl void log(String event, TransportFrame frame) { - if ((_levels & TRACE_FRM) != 0) { + if (isTraceFramesEnabled()) { StringBuilder msg = new StringBuilder(); msg.append("[").append(System.identityHashCode(this)).append(":") .append(frame.getChannel()).append("]"); @@ -1605,6 +1605,11 @@ public class TransportImpl extends EndpointImpl } } + boolean isTraceFramesEnabled() + { + return (_levels & TRACE_FRM) != 0; + } + @Override void localOpen() {} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org