Skip to content

Commit d887779

Browse files
committed
Net-client: perf tuning - make read buf the size of socket receive buf
1 parent fe465fe commit d887779

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

java/libraries/net/src/processing/net/Client.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,15 @@ public void dispose() {
219219

220220
@Override
221221
public void run() {
222-
byte[] readBuffer = new byte[2048]; // Ethernet MTU = 1500 B
222+
byte[] readBuffer;
223+
{ // make the read buffer same size as socket receive buffer so that
224+
// we don't waste cycles calling listeners when there is more data waiting
225+
int readBufferSize = 2 << 16; // 64 KB (default socket receive buffer size)
226+
try {
227+
readBufferSize = socket.getReceiveBufferSize();
228+
} catch (SocketException ignore) { }
229+
readBuffer = new byte[readBufferSize];
230+
}
223231
while (Thread.currentThread() == thread) {
224232
try {
225233
while (input != null) {

0 commit comments

Comments
 (0)