News for hackers. Stuff that matters.
Re:~2M msgs/second messaging system written in Go by paulasmuth on Thursday December 06, 2012 @04:14PM (#4883839)
Mh, if I understand correctly the messaging system being tested is https://github.com/derekcollison/nats and it is not written in Go but in Ruby (+EventMachine). Or is there a Go version of NATS?

Also, this is only testing the time it takes the go client to write the messages to the socket, not the time the server takes to process the messages. So the benchmark would be the same with a noop server that reads and discards all incoming traffic. Am I wrong?

Re:~2M msgs/second messaging system written in Go by timtadh on Thursday December 06, 2012 @04:19PM (#4883864)
I am not the author of the gist but quoting from it: "our work on a high performance NATS server in Go." Furthermore, the tests he shows are run using Go's testing tool (which tests go code). Finally, he discusses "no use of defer" a Go language feature not in Ruby. So yes I believe it is an implementation in Go.
Re:~2M msgs/second messaging system written in Go by randomdata on Thursday December 06, 2012 @04:54PM (#4884034)
I agree with your analysis, but EventMachine does use a defer method to push long-running work off of the event loop.
Re:~2M msgs/second messaging system written in Go by 4ad on Thursday December 06, 2012 @05:47PM (#4884325)
Defer in Go means something very specific and completely different:

http://golang.org/ref/spec#Defer_statements

http://golang.org/doc/effective_go.html#defer

Re:~2M msgs/second messaging system written in Go by randomdata on Thursday December 06, 2012 @06:46PM (#4884540)
But EventMachine#defer would make sense in this context, given that the Ruby version is written with EventMachine. That is why I noted it.
Re:~2M msgs/second messaging system written in Go by derekcollison on Friday December 07, 2012 @10:09AM (#4887184)
The test is specific to a new NATS server written in GO (gnatsd). I described in more detail above the tests and what they do, but suffice it to say that it does test the message processing overhead of the server.
Re:~2M msgs/second messaging system written in Go by dbaupp on Thursday December 06, 2012 @04:22PM (#4883870)
For your first question: maybe, there is "s = startServer(b, PERF_PORT, "")" in the code, but this could easily be an external call.
Re:~2M msgs/second messaging system written in Go by malingo on Thursday December 06, 2012 @04:39PM (#4883949)
The benchmark command has the path "~/gnatsd" in the prompt. Looks like it's Go-NATS.