
#8095: TypeFamilies painfully slow -------------------------------------+------------------------------------- Reporter: MikeIzbicki | Owner: goldfire Type: bug | Status: new Priority: high | Milestone: 8.8.1 Component: Compiler (Type | Version: 7.6.3 checker) | Resolution: | Keywords: TypeFamilies Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: #5321, #11598, | Differential Rev(s): Phab:D3752, #12506, #13386 | Phab:D4766 Wiki Page: | -------------------------------------+------------------------------------- Comment (by pingu): Replying to [comment:58 hussein.aitlahcen]:
Hello everyone,
My team experienced the same issue when using Squeal extensively (https://github.com/morphismtech/squeal).
My team appears to be experiencing the same issue using Beam migrations. Beam is a similar library to Squeal which makes heavy use of type families (https://tathougies.github.io/beam/)... I found this ticket whilst trying to work out why GHC was spending so much time and memory simplifying.
... Because of that, GHC was taking **12gb+** to compile some files. I found that omitting the interfaces pragmas with `-fomit-interface-pragmas` was helping a lot. In fact, no more unfolded type in the interface file, making the dumped .txt file going from **3.5gb** to **700kb** with a maximum allocated memory of **2.5gb**.
This flag reduced our maximum residency from ~= 14GB down to ~= 10GB, and compile times roughly halved. Thank you very much for this tip, it's stopped us swapping during compilation for now. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8095#comment:59 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler