From 25efee55b8310885b89238c180b6b3ca6d30c0bf Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 22 Jan 2022 18:43:32 +0000 Subject: [PATCH] Added networking optimization, to avoid wasted processing on every read. Thanks to @catbref for finding this. --- src/main/java/org/qortal/network/Peer.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/qortal/network/Peer.java b/src/main/java/org/qortal/network/Peer.java index 3b50b777..da4a70a9 100644 --- a/src/main/java/org/qortal/network/Peer.java +++ b/src/main/java/org/qortal/network/Peer.java @@ -473,16 +473,18 @@ public class Peer { return; } - if (bytesRead > 0) { - byte[] leadingBytes = new byte[Math.min(bytesRead, 8)]; - this.byteBuffer.asReadOnlyBuffer().position(priorPosition).get(leadingBytes); - String leadingHex = HashCode.fromBytes(leadingBytes).toString(); + if (LOGGER.isTraceEnabled()) { + if (bytesRead > 0) { + byte[] leadingBytes = new byte[Math.min(bytesRead, 8)]; + this.byteBuffer.asReadOnlyBuffer().position(priorPosition).get(leadingBytes); + String leadingHex = HashCode.fromBytes(leadingBytes).toString(); - LOGGER.trace("[{}] Received {} bytes, starting {}, into byteBuffer[{}] from peer {}", - this.peerConnectionId, bytesRead, leadingHex, priorPosition, this); - } else { - LOGGER.trace("[{}] Received {} bytes into byteBuffer[{}] from peer {}", this.peerConnectionId, - bytesRead, priorPosition, this); + LOGGER.trace("[{}] Received {} bytes, starting {}, into byteBuffer[{}] from peer {}", + this.peerConnectionId, bytesRead, leadingHex, priorPosition, this); + } else { + LOGGER.trace("[{}] Received {} bytes into byteBuffer[{}] from peer {}", this.peerConnectionId, + bytesRead, priorPosition, this); + } } final boolean wasByteBufferFull = !this.byteBuffer.hasRemaining();