Interesting, but now I'm even more confused. How can we possibly explain that a (go client -> go server) (which are in separate go processes) performs far worse than (go -> scala server), given that the go server seems to be better when using the scala client?
The comments on the article page have a different report which doesn't suffer from this implausibility:
> Interesting, but now I'm even more confused. How can we possibly explain that a (go client -> go server) (which are in separate go processes) performs far worse than (go -> scala server), given that the go server seems to be better when using the scala client?
I've been curious about that as well. The major slowdown seems to be related to a specific combination of go server and client. I don't have a good explanation. I'd love to hear from someone familiar with go internals.
> go server + go client 22.02125152
> ...
> scala server + go client 4.766823392
The comments on the article page have a different report which doesn't suffer from this implausibility:
go server + go client 22.02125152
scala server + scala client 3.469
go server + scala client 3.562
scala server + go client 4.766823392