
Sorry, just realized I wasn't very clear: I mean I was expecting this
bit of code to output "garbage collected" at some point :)
On 16 January 2015 at 11:52, Elise Huard
Thanks! I knew about profiling but System.Mem.Weak is interesting, for more specific cases!
I tried a toy example, triggering the GC manually, but I may be doing it wrong:
import System.Mem.Weak import System.Mem (performGC) import Control.Concurrent (threadDelay)
main :: IO () main = do let x = 5 y = "done" z = 3 a <- mkWeak z x (Just (putStrLn "garbage collected")) performGC threadDelay 20000000 print y
Any tips? Thanks,
Elise
On 14 January 2015 at 13:17, Ryan Trinkle
wrote: You can use the 'vacuum' package to explore the heap, and you can use System.Mem.Weak to create a reference to something that won't keep it from being GCed and will let you check on it later. You can also use the built-in heap profiling capabilities to track things like the memory usage of the entire heap from moment to moment.
On Wed, Jan 14, 2015 at 5:24 AM, Elise Huard
wrote: Hi,
Maybe a stupid question: is there a way to check whether a particular data structure (or set of data structures) has been garbage collected? Or indirectly: is there a way to check what's still alive in the heap, so that you can potentially diff from one moment to another? Thanks,
Elise Huard _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners