Skip to content

Add support for Elixir language to benchmark code - #2

Open
webcoyote wants to merge 4 commits into
stephenmcd:masterfrom
webcoyote:elixir-support
Open

Add support for Elixir language to benchmark code#2
webcoyote wants to merge 4 commits into
stephenmcd:masterfrom
webcoyote:elixir-support

Conversation

@webcoyote

Copy link
Copy Markdown

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

@stephenmcd

Copy link
Copy Markdown
Owner

Thanks Pat, this is super cool!

I probably won't merge it, since the repo is mostly just meant to represent the state of the blog post - but what I might do is add an update to both the README here and the blog post that links to this pull request at least, so people can have a look at it.

Thanks again - really cool stuff.

@webcoyote

Copy link
Copy Markdown
Author

Great, thanks!

@stephenmcd

Copy link
Copy Markdown
Owner

Done here: ccb9588

@leoluk

leoluk commented Mar 7, 2013

Copy link
Copy Markdown

Maybe open a branch for such additions?

@josevalim

Copy link
Copy Markdown

This is great work and I am super excited with the results!
If you don't mind, I will add some comments regarding the Elixir code. :)

Comment thread lib/app.ex Outdated

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can also use the Enum module most of the cases you need to use Erlang's :lists:

@webcoyote

Copy link
Copy Markdown
Author

Fixed!

@unbalancedparentheses

Copy link
Copy Markdown

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants