two-queues icon indicating copy to clipboard operation
two-queues copied to clipboard

Add support for Elixir language to benchmark code

Open webcoyote opened this issue 11 years ago • 7 comments

Hello Stephen,

This pull request includes support for Elixir, a Ruby-like language built on the Erlang BEAM virtual machine.

two-queues-3 [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

webcoyote avatar Mar 05 '13 05:03 webcoyote