Live data from Hacker News

Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

atilanevesoncode.wordpress.com

31–40 of 50 posts

Re: Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

#31
post #11

> What about readability and ease of writing? I can’t read Erlang so I can’t comment on that. The Erlang code looks very nice. If you read this, great work Patrick! https://bitbucket.org/pvalsecc/ Nice use of gen_fsm + binary matching. Here is an example of the client code that takes only 200 lines: https://bitbucket.org/pvalsecc/erlangmqtt/src/f37505188c1f1c...

I'll let him know :)

Re: Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

#32
post #22

Earlier quoted context omitted.

How Go is compiled isn't as relevant to its performance as much as what Go is compiled into, which hasn't changed all that much as far as I know. The GC improvements might help with latency though.

It's still hard to take any benchmark seriously when given the quote: > Mosquitto was compiled with gcc 4.8.2, the Go implementation was executed with go run, the D implementation was compiled with dmd 2.0.64.2 and the Erlang version I’m not sure. The "I'm not sure" speaks for itself, but go run also includes both compilation time and execution time and they're comparing it against just the execution times of the oth…

I didn't write the Erlang version, don't know Erlang nor have any idea how it's built. The curious can always check the code out.

I don't know why you think that start-up time has an effect on the benchmarks. It doesn't matter how long the brokers take to start, once they did the measurements were done. `go run` doesn't change a thing.

Re: Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

#33
post #11

> What about readability and ease of writing? I can’t read Erlang so I can’t comment on that. The Erlang code looks very nice. If you read this, great work Patrick! https://bitbucket.org/pvalsecc/ Nice use of gen_fsm + binary matching. Here is an example of the client code that takes only 200 lines: https://bitbucket.org/pvalsecc/erlangmqtt/src/f37505188c1f1c...

I'll let him know :)

Thanks and thanks for sharing the benchmarks!

Re: Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

#34
post #12
post #10

update from go 1.2? since there have been many performance improvements since then...

It seems this article was posted in 2013. Not sure where that falls in the Go release timeline, but I'm guessing the version wasn't was far behind then as it seems now. Edit: After a quick search, it looks like Go 1.2 was released only 4 days prior to this article being posted.

I run Arch Linux, all the versions were whatever was newest at the time.

Re: Go, D, Erlang and C in real life: MQTT broker implementation shootout (2013)

#38
did you use GOMAXPROCS=$YOUR_CORES ? or just the standard in 1.2? Actually golang is really good in multithreading. Next you also have a Java example, did you warm it up or not? Actually thats why I hate benchmarks, since mostly they are screwed since most people who are writing benchmarks actually knowing just a little of each language. (actually they just want to show that "their" language is good)
Post reply on HN