
#9476: Implement late lambda-lifting -------------------------------------+------------------------------------- Reporter: simonpj | Owner: sgraf Type: feature request | Status: closed Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 7.8.2 Resolution: fixed | Keywords: LateLamLift Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: #8763 #13286 | Differential Rev(s): Phab:D5224 Wiki Page: LateLamLift | -------------------------------------+------------------------------------- Comment (by sgraf): The `-F1 -A1M` trick (hat tip in direction of Simon Marlow) for measuring residency discussed on [https://mail.haskell.org/pipermail/ghc- devs/2018-December/016639.html ghc-dev] is much more accurate. It seems that the difference in residency isn't as big as I thought; In the `./paraffins 19` setup, it's 196MB in both cases, with just a little bit more residency (I measured 300kb difference, I'm not confident this is really accurate or measurable) when we ignore possible closure growth. For `wheel-sieve1`, the difference in residency also is about 300kb, of 12.6MB. (Still, 30% more allocations in total.) So it seems that we produce significantly more garbage in some cases, but residency stays about the same. On the other hand, producing more garbage means more frequent Gen 0 collects. That's also evident by the number of collections in `-F1 -A1M`: 42 vs. 55 when ignoring closure growth. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9476#comment:74 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler