base- Basic libraries

Safe HaskellSafe



This module provides access to internal garbage collection and memory usage statistics. These statistics are not available unless a program is run with the -T RTS flag.

This module is GHC-only and should not be considered portable.




data GCStats Source

Global garbage collection and memory statistics.





bytesAllocated :: !Int64

Total number of bytes allocated

numGcs :: !Int64

Number of garbage collections performed

maxBytesUsed :: !Int64

Maximum number of live bytes seen so far

numByteUsageSamples :: !Int64

Number of byte usage samples taken | Sum of all byte usage samples, can be used with numByteUsageSamples to calculate averages with arbitrary weighting (if you are sampling this record multiple times).

cumulativeBytesUsed :: !Int64
bytesCopied :: !Int64

Number of bytes copied during GC

currentBytesUsed :: !Int64

Current number of live bytes

currentBytesSlop :: !Int64

Current number of bytes lost to slop

maxBytesSlop :: !Int64

Maximum number of bytes lost to slop at any one time so far

peakMegabytesAllocated :: !Int64

Maximum number of megabytes allocated | CPU time spent running mutator threads. This does not include any profiling overhead or initialization.

mutatorCpuSeconds :: !Double
mutatorWallSeconds :: !Double

Wall clock time spent running mutator threads. This does not include initialization.

gcCpuSeconds :: !Double

CPU time spent running GC

gcWallSeconds :: !Double

Wall clock time spent running GC

cpuSeconds :: !Double

Total CPU time elapsed since program start

wallSeconds :: !Double

Total wall clock time elapsed since start | Number of bytes copied during GC, minus space held by mutable lists held by the capabilities. Can be used with parMaxBytesCopied to determine how well parallel GC utilized all cores.

parTotBytesCopied :: !Int64
parMaxBytesCopied :: !Int64

Sum of number of bytes copied each GC by the most active GC thread each GC. The ratio of parTotBytesCopied divided by parMaxBytesCopied approaches 1 for a maximally sequential run and approaches the number of threads (set by the RTS flag -N) for a maximally parallel run.


getGCStats :: IO GCStats Source

Retrieves garbage collection and memory statistics as of the last garbage collection. If you would like your statistics as recent as possible, first run a performGC.


getGCStatsEnabled :: IO Bool Source

Returns whether GC stats have been enabled (with +RTS -T, for example).