3 ms·
This example is just to show that pauses are not in the same class as any other fully managed languages. I haven’t looked at the code to know how much it stress
by zeeboo 7y ago
This example is just to show that pauses are not in the same class as any other fully managed languages. I haven’t looked at the code to know how much it stresses the garbage collector, but I agree it does seem unlikely to do so.
That said, being able to work on the stack does influence the design of the garbage collector. Throughput becomes less important because you can choose to allocate less, and pause time is more important because latency is harder to optimize. Latency is affected by your whole stack and can’t be meaningfully reduced by just adding more machines in the same way that throughput can be increased.
- littlestymaar 7y ago> This example is just to show that pauses are not in the same class as any other fully managed languages. But your choose one of the few examples where there is no pause at all, because go's GC didn't even tick once! Go could have a 10 seconds stop the world, it would still perform the same way here, that's why I say this examplei is a poor one for the point you're making (which is valid, even though one could argue than 10ms pauses are better than 30% of the CPU usage being the GC running (actual production usage on a Go service at my former work)).