two-queues
two-queues copied to clipboard
Add support for Elixir language to benchmark code
Hello Stephen,
This pull request includes support for Elixir, a Ruby-like language built on the Erlang BEAM virtual machine.
[note: updated image based on results from message-send optimization checked in during a later commit]
I hugely enjoyed your two-queues article. I discovered a lot of new knowledge by reading both the article and code. Until now I hadn't written any Python, Go, or Elixir, so this was a great learning project for all three languages.
The Elixir code is not complete ("--host" not implemented), and I don't support "channels" the same way your code does as actors and channels solve the problem a bit differently (and I'm still learning Elixir). But I thought you might be interested anyway.
It's also only tested on CentOS at present, and the helper scripts I added to install the pre-reqs may need tweaking on OSX.
Please don't feel any need to integrate these changes -- I expect it would make the article and code less useful for readers because they'll have to get Elixir/Erlang working too. I just wanted to share because the code was fun to write and might be valuable to others.
Oh, and finally, in some ways the Elixir code isn't a fair comparison because it isn't sending the messages over sockets, though that aspect of Erlang/BEAM is a reason that it's compelling to use for server development.
Best,
Pat blog: Code of Honor