garbage collected object

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

If you know enough about an object to find it on the heap, then you hold a
reference, if you hold a reference, then it's probably not gced...
Am 14.01.2015 11:24 schrieb "Elise Huard"
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

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
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

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
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

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
participants (3)
-
Elise Huard
-
Norbert Melzer
-
Ryan Trinkle