[nanomsg] Re: Dead?

  • From: Ben Kloosterman <bklooste@xxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Tue, 26 Jan 2016 17:54:30 +1100

On Tue, Jan 26, 2016 at 5:11 PM, Garrett D'Amore <garrett@xxxxxxxxxx> wrote:

Go uses a GC, its true. However, mangos itself is designed to avoid
hitting the GC whenever possible, through the use of buffer caching and
recycling/reuse.

My own latency measurements show that mangos performs comparably to
nanomsg. In some tests it does better, in others worse, but the
differences are generally small.

Now, if your *application* hits the GC hard, then you’re going to have
problems. But it is possible to preallocate your own memory and avoid the
GC. You just have to manage your own allocations then, just like you do in
C.

Now that said, Go’s GC has improved a lot in the last releases, so you
probably won’t see it do too badly.

I also know a lot of low latency applications (HFT) are written in Java.
You might want to recheck some of your assumptions.


I know some Google had huge issues with this ( i spoke to one of their
designers) with Java and cutting edge GCs , they threw heaps of money and
tried everything . The problem is the apps were very low latency but they
could not remove the worst case spikes which impacted user expectations ie
low average latency bad worst case. Obviously for small heaps say 200 Meg ,
no issue but once your talking Gb multiples it becomes a serious issue,.

That said i do a lot of work in C# ( previously Java) so im not anti GC.

Ben

Other related posts: