3 ms·
When working on V2 of our architecture we tried out both Elixir and Go extensively. For our workload Go was roughly 8 times faster than Elixir, while both handl
by tschellenbach 8y ago
When working on V2 of our architecture we tried out both Elixir and Go extensively. For our workload Go was roughly 8 times faster than Elixir, while both handling concurrent workloads exceptionally well. (bit of background on the type of work we do: https://stackshare.io/stream/stream-and-go-news-feeds-for-over-300-million-end-users https://stackshare.io/stream/stream-and-go-news-feeds-for-ov...)
That being said, I'd love to find an excuse to work on a little project with Elixir and Phoenix. Some really cool concepts. Especially the build in support for realtime is really nifty. With Go that's much more work to get up and running.
- dnautics 8y agoI can't say I'm an expert in go - I only wrote the cli for my program in go, but I feel like elixir optimized for developer productivity far more than go does. Most of the time you don't really need that level of performance.
- zinclozenge 8y agoYou're going to find that for workloads that require churning through requests, or something similar, that Go or Rust or something similar is simply better. Elixir/Erlang is mostly good for dealing with a lot of persistent state, staying up and running, and reliably getting data from point A to point B. But none of those it does particularly fast, unless you can do it without needing to mutate a data structure/variable, or you can take advantage of the fast binary pattern matching.
- Thaxll 8y ago> With Go that's much more work to get up and running. Can you expand on that? Go is very fast to get up and running, you DL go runtime, git clone a repo, go build . and have your single executable ready to go.
- tschellenbach 8y agoThis bit of Phoenix: https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections https://phoenixframework.org/blog/the-road-to-2-million-webs... Takes substantially more work in Go.
- Thaxll 8y agoThanks for the answer, for Go it doesn't take much most likely easier than in Erlang: http://goroutines.com/10m http://goroutines.com/10m I never had to work on that many connections per instance, but knowing how much faster Go is vs Erlang I woudn't see this as an issue?
- joevandyk 8y agoHe's referring to Go being more work to setup realtime web things, as opposed to Phoenix.