[Haskell-cafe] Fast JSON validation - reducing allocations

Eric Seidel eric at seidel.io
Thu May 11 17:26:49 UTC 2017


On Thu, May 11, 2017, at 09:12, David Turner wrote:
> Could anyone help, e.g. by pointing me at the bit in the Core that is
> allocating within the main loop?

GHC has a -ticky flag that tracks precisely where allocations are
happening. It's quite low level (you may have to stare at the STG in
addition to the Core to interpret the results) but I've found it
incredibly useful when trying to understand performance swings in GHC's
own benchmarks.

https://ghc.haskell.org/trac/ghc/wiki/Debugging/TickyTicky

You can enable it per module, which is nice break from the
rebuild-the-world -prof, but the flip side IIRC is that if the
allocations are happening in a module that wasn't compiled with -ticky
(e.g. somewhere inside Data.Array) you might not see them.

Hope this helps!
Eric


More information about the Haskell-Cafe mailing list