
#13110: GHC API allocates memory which is never GC'd -------------------------------------+------------------------------------- Reporter: DanielG | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: GHC API | Version: 8.0.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonmar): @rwbarton's comment above is correct. GHC keeps a hash table of strings (the `FastString` table) that is never deallocated. This is likely the 20MB you're seeing. If this is really a problem for you, then we could provide a way via the GHC API to clear the table. (but I'm surprised if this is really a problem, GHC will keep a lot of other data structures while it is being used, such as all the interface files it read) `resetCAFs` only applies to code that is dynamically loaded by the RTS linker, so it's not doing anything in your case - the ghc package is statically linked into your binary. You do need to force a major GC as @rwbarton mentioned to get the RTS to return memory to the OS. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13110#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler