lichuan

lichuan

Comparing the fairness and real-time performance of schedulers in Erlang and Go

Hi, I’ve created a new repository on GitHub to compare the fairness and real-time performance of schedulers in Erlang and Go. Feel free to check it out!

This repository contains a comparative analysis of the scheduling fairness and real-time performance between Golang and Erlang. The tests demonstrate that Golang’s goroutine scheduler performs poorly - it’s crude, unfair, and lacks good real-time characteristics. In contrast, Erlang’s scheduler proves significantly superior in both fairness and real-time performance!

https://github.com/lichuan/erlang-vs-golang

First Post!

billylanchantin

billylanchantin

This looks like a fun experiment!

For clarity, do you think you could explain the results more explicitly? What should one expect from a “perfectly fair” scheduler? And how do the results specifically show that Erlang’s results exhibit “more fairness” than Go’s?

Also, perhaps text files with the actual results would be beneficial. Screenshots of small samples make the overall conclusion unverifiable.

Last Post!

derek-zhou

derek-zhou

I don’t think the “lockstep” behavior you observed in Erlang is realistic or even desired. Also I cannot reproduce it; are you using a non-SMP run time? I do not have a go setup to test out the Go. version, but I suspect your Go result is also too in-sync-y for some reason.

I have:

erlang…work2 cnt: 894
erlang…work1 cnt: 674
erlang…work2 cnt: 895
erlang…work1 cnt: 675
erlang…work2 cnt: 896
^C

My erlang is:

derek@roastidious:~/projects/tt$ erl
Erlang/OTP 26 [erts-14.1] [source] [32-bit] [smp:32:4] [ds:32:4:10] [async-threads:1]

Eshell V14.1 (press Ctrl+G to abort, type help(). for help)
1> 

Where Next?

Popular in Discussions Top

New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 20046 166
New
AstonJ
I’ve just started the Phoenix part of the utterly brilliant online course by @pragdave. On generating the Phoenix app he uses the --no-ec...
New
jer
I’ve been using umbrellas for a while, and generally started off (on greenfield projects at least) by isolating subapps based on clearly ...
New
chulkilee
Here are the list of HTTP client libraries/wrappers, and some thoughts on HTTP client in general. I’d like to hear from others how they w...
New
AstonJ
If so I (and hopefully others!) might have some tips for you :slight_smile: But first, please say which area you’re finding most challen...
New
marciol
Please, let me know if this kind of discussion already took place in another topic . Hi all, how do you consider if is better to build ...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54921 245
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49084 226
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

We're in Beta

About us Mission Statement