News for hackers. Stuff that matters.
Re:Erlang Garbage Collector by aidenn0 on Friday December 01, 2017 @01:56AM (#15822416)
Go has traded throughput for latency. The throughput of a semispace copying collector is very high for most workloads, but can suffer latency issues. There is literally zero cost to collecting garbage in the nursery with the algorithm described in TFA (a nursery collection has a cost proportional only to the live data), and the cost of allocating in the nursery is just incrementing a single value. However eventually you need to collect the entire heap, and it's still proportional to the size of the live data, which is usually the majority of the heap (since you've already collected the nursery at that point).
Re:Erlang Garbage Collector by weberc2 on Friday December 01, 2017 @10:27AM (#15824332)
Sorry, I'm confused. Is Go's GC the semispaced copying collector or the TFA? Or neither? Or both?
Re:Erlang Garbage Collector by aidenn0 on Friday December 01, 2017 @02:57PM (#15826814)
TFA == "The Fine Article" so refers specifically to the Erlang Garbage Collector.

"Semispace" is one term to refer to the family of garbage collectors that Erlang's derives from. The heap is divided into two spaces, hence "semispace"

So Go's GC is neither. Go's gc is tuned for lower latencies, and that tends to rule out moving collectors (there are ways of having incremental moving collectors, but they complicate the runtime a bit).

Re:Erlang Garbage Collector by weberc2 on Friday December 01, 2017 @09:50PM (#15829825)
Ah, thanks for the information and clarification!