Eugene Retunsky
1 min readFeb 26, 2021

--

Sure thing, I’m aware of the Java cold start issues. That’s why the final numbers don’t include the ramp-up (to make sure it warmed up).

Java is indeed pretty close at p50/p90 level. But in terms of variance and tail latency, it’s not as good (so is Golang, btw). For some services/use-cases, it is not as important. For some, it’s critical. The focus of my benchmarks was the predictability of latency under different conditions.

I looked at Netty but didn’t find a ready TCP Proxy. I found and benchmarked several TCP Proxies on GitHub. NetCrusher was the best among them. I also inspected the NetCrusher source code, and I didn’t notice any red-flags — it seems to be a decent Java NIO app.

But again, I’m open to test any other solution if it is more performant. Or you can do it, I described the methodology in detail here: https://github.com/xnuter/perf-gauge/wiki/Benchmarking-TCP-Proxies-written-in-different-languages:-C,-CPP,-Rust,-Golang,-Java,-Python

--

--

Eugene Retunsky
Eugene Retunsky

Written by Eugene Retunsky

Tech leader with hands-on experience in building and operating large-scale systems. Ex-AWS/Ex-Google. Focusing on reliability, security, and performance.

Responses (1)