Improving GHC GC for latency-sensitive networked services

Christopher Allen cma at bitemyapp.com
Mon Oct 17 17:08:01 UTC 2016


It'd be unfortunate if more companies trying out Haskell came to the
same result: https://blog.pusher.com/latency-working-set-ghc-gc-pick-two/#comment-2866985345
(They gave up and rewrote the service in Golang)

Most of the state of the art I'm aware of (such as from Azul Systems)
is from when I was using a JVM language, which isn't necessarily
applicable for GHC.

I understand Marlow's thread-local heaps experiment circa 7.2/7.4 was
abandoned because it penalized performance too much. Does the
impression that there isn't the labor to maintain two GCs still hold?
It seems like thread-local heaps would be pervasive.

Does anyone know what could be done in GHC itself to improve this
situation? Stop-the-world is pretty painful when the otherwise
excellent concurrency primitives are much of why you're using Haskell.

--- Chris Allen


More information about the ghc-devs mailing list