Add support for Elixir language to benchmark code - #2
Open
webcoyote wants to merge 4 commits into
Open
Conversation
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. |
Author
|
Great, thanks! |
Owner
|
Done here: ccb9588 |
|
Maybe open a branch for such additions? |
|
This is great work and I am super excited with the results! |
There was a problem hiding this comment.
You can also use the Enum module most of the cases you need to use Erlang's :lists:
Author
|
Fixed! |
|
+1 |
webcoyote
force-pushed
the
elixir-support
branch
from
January 20, 2026 17:29
b5f85a2 to
8b2f202
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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