
#10289: compiling huge HashSet hogs memory -------------------------------------+------------------------------------- Reporter: zudov | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Runtime | (amd64) performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by zudov):
What happens if you don't have the call to `S.fromList`?
This compiles fine with `-O2`. However if I use `-O0 -fno-ignore- interface-pragmas` then memory consumption goes high again. That seems a little strange to me. How do you think, is it a right way to reproduce the problem without depending on unordered-containers (if it is, then we probably can just experiment with list and come back to `HashSet` later)? I tried to observe the behaviour of a smaller list compilation with `-ddump-inlinings`: - Compilation with `-O2 -ddump-inlinings` reports inlining of `Data.Text.pack` and `GHC.Base.build` on each element - Compilation with `-O0 -ddump-inlinings` reports inlining of: - `Data.Text.pack` - `Data.Text.Internal.Fusion.unstream` - `Data.Text.Internal.Fusion.Common.map` - `Data.Text.Internal.Fusion.Common.streamList` - `Data.Text.Internal.safe` - `Data.Text.Internal.Fusion.Types.$WYield` Please suggest if it makes sense to dig into that direction. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10289#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler