From eb2d65bb0c216737d36bae03480e55b86b633b84 Mon Sep 17 00:00:00 2001 From: Xudong Ma Date: Tue, 31 Mar 2015 19:35:44 +0800 Subject: [PATCH] Disable Nagle's algorithm, this was exposed by our internal micro benchmark, the streamingInputCall() method happened to have the write-write-read pattern which added 40ms extra delay. According to our micro benchmark, this change improves the performance, see https://screenshot.googleplex.com/cfxjPGxkgF.png for the previous results, there were 4 out of 6 scenarios had higher latency than netty transport. https://screenshot.googleplex.com/Rq92tYMvBE.png shows the results after this change, the latencies in all scenarios are less than netty transport. This commit fixes #60. --- .../java/io/grpc/transport/okhttp/OkHttpClientTransport.java | 1 + 1 file changed, 1 insertion(+) diff --git a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransport.java b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransport.java index 7937e57f21..2140d6c84c 100644 --- a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransport.java +++ b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransport.java @@ -208,6 +208,7 @@ public class OkHttpClientTransport implements ClientTransport { // We assume the sslSocketFactory will verify the server hostname. socket = sslSocketFactory.createSocket(socket, authorityHost, address.getPort(), true); } + socket.setTcpNoDelay(true); source = Okio.buffer(Okio.source(socket)); sink = Okio.buffer(Okio.sink(socket)); } catch (IOException e) {