←back to thread

175 points nateb2022 | 1 comments | | HN request time: 0.359s | source
Show context
nahuel0x ◴[] No.41522944[source]
Three big differences in comparison with Erlang: 1- Cannot externally kill a process (yes, ergo process have a Kill method but the process will be in a "zombie" state until the current message handlers returns... maybe stuck forever) 2- No hot code reloading. 3- No per-process GC.
replies(4): >>41523113 #>>41523543 #>>41524544 #>>41525115 #
throwaway894345 ◴[] No.41523543[source]
I've never written any Erlang before--why do I care about per-process GC?
replies(5): >>41523595 #>>41523906 #>>41523962 #>>41524224 #>>41527473 #
victorbjorklund ◴[] No.41523906[source]
More consistent performance. No stopping the whole world.
replies(1): >>41524621 #
throwaway894345 ◴[] No.41524621[source]
That makes sense. I wonder how important this is versus Go, considering Go has a sub-millisecond GC even without per-process GC? (Go also makes much more use of the stack which might be sort of analogous to per-process GC?)
replies(2): >>41525191 #>>41529072 #
weatherlight ◴[] No.41525191[source]
This can cause GC to become "bursty."

BeamVM languages complete side step this problem all together.

replies(2): >>41526951 #>>41532876 #
1. hosh ◴[] No.41526951[source]
Out in the field, smoothing out variances can be just as important to overall performance and reliability.