[Haskell-beginners] garbage collected object

Elise Huard haskell at elisehuard.be
Fri Jan 16 10:52:39 UTC 2015


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 <ryan.trinkle at gmail.com> 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 <haskell at elisehuard.be> 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 at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>


More information about the Beginners mailing list