3 ms·
A pool allocator could have reduced the number of existing allocations (1 big one instead of many small ones), making those spikes less significant. (But that d
by azakai 7y ago
A pool allocator could have reduced the number of existing allocations (1 big one instead of many small ones), making those spikes less significant. (But that depends on how Go handles interior pointers and GC, so I'm not sure.)
- runevault 7y agoAllocations weren't the problem. It was the fact that, every 2 minutes, the GC would trigger because of an arbitrary decision by the Go team and scan their entire heap, find little to nothing to deallocate, then go on its merry way.
- monocasa 7y agoIt has to track interior pointers. The problem for them seems to be the mark phase, where the GC has to track down all the pointers either way.