Comment by SigmundA
>I am not quite following, why would we drop multi-processing with isolated tiny heaps with a few KBs each and move to multi-threading with a large multi-megabyte stacks per thread and all sharing and writing to the same heap? It seems like a step backward.
Performance typically, hard to work in parallel on large amount of data performantly without multiple thread sharing a heap and you typically don't need large amount of threads because you don't actually have that many real cores to run them on.
Lots of little share nothing process are great conceptually but that does create significant overhead.
> Lots of little share nothing process are great conceptually but that does create significant overhead.
It doesn't, really? I have clusters running 1M+ Erlang processes comfortably per node.
> you typically don't need large amount of threads
Exactly, that's why Erlang only spawns just the right amount of threads. One scheduler thread per CPU, then a bunch of long running CPU task threads (same number as CPUs as well), plus some to do IO (10-20) and that's it.