-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Determine the size of runtime data structures -- -- heapsize is a tool to determine the size data structures. Determining -- the size of recursive data structures is supported. All sizes are in -- Bytes. @package heapsize @version 0.1 -- | Based on GHC.Datasize by Dennis Felsing module HeapSize -- | Calculate the recursive size of GHC objects in Bytes. Note that the -- actual size in memory is calculated, so shared values are only counted -- once. -- -- Call with recursiveSize $! 2 to force evaluation to WHNF -- before calculating the size. -- -- Call with recursiveSize $!! "foobar" ($!! from -- Control.DeepSeq) to force full evaluation before calculating the size. -- -- A garbage collection is performed before the size is calculated, -- because the garbage collector would make heap walks difficult. -- -- This function works very quickly on small data structures, but can be -- slow on large and complex ones. If speed is an issue it's probably -- possible to get the exact size of a small portion of the data -- structure and then estimate the total size from that. recursiveSize :: a -> IO Int -- | Same as recursiveSize except without performing garbage -- collection first. Useful if you want to measure the size of many -- objects in sequence. You can call performGC once at first and -- then use this function to avoid multiple unnecessary garbage -- collections. recursiveSizeNoGC :: a -> IO Int -- | Calculate the recursive size of GHC objects in Bytes after calling -- Control.DeepSeq.force on the data structure to force it into Normal -- Form. Using this function requires that the data structure has an -- NFData typeclass instance. recursiveSizeNF :: NFData a => a -> IO Int -- | Get the *non-recursive* size of an closure in words closureSize :: a -> IO Int instance GHC.Show.Show HeapSize.HashableBox instance GHC.Classes.Eq HeapSize.HashableBox instance Data.Hashable.Class.Hashable HeapSize.HashableBox