ergo-services / ergo

An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.
https://ergo.services
MIT License
3.5k stars 138 forks source link

I doubt benchmarks be fair !!! #148

Closed Rustixir closed 1 year ago

Rustixir commented 1 year ago

https://erlangforums.com/t/ring-benchmark-erlang-vs-go/684/12

in erlang community we did some benchkmarks around (raw golang) and ( erlang ) erlang was winner in message passing. erlang internally used lock-free algorithm for registry and communication between mailbox. but golang used mutex for channels !!! and in your framework heavily using mutex for synchronization !!!

how is ergo with overhead of framework can beats erlang ??!!!

halturin commented 1 year ago

We are moving the same way https://twitter.com/halturin/status/1634165290564034562 image

halturin commented 1 year ago

how is ergo with overhead of framework can beats erlang ??!!!

in terms of network messaging Erlang has poor performance due to the ETF encoder/decoder (lists/maps especially). Beside that, Ergo ETF has stack-less implementation

your framework heavily using mutex for synchronization

it depends on where it's used. In Ergo we use most of the time RWMutex which is not the same as regular Mutex in terms of performance.

halturin commented 1 year ago

I move it to the Discussion. Hope you don't mind.