Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
GHC.Stats
Description
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.
Since: 4.5.0.0
Synopsis
- data GCStats = GCStats {
- bytesAllocated :: !Int64
- numGcs :: !Int64
- maxBytesUsed :: !Int64
- numByteUsageSamples :: !Int64
- cumulativeBytesUsed :: !Int64
- bytesCopied :: !Int64
- currentBytesUsed :: !Int64
- currentBytesSlop :: !Int64
- maxBytesSlop :: !Int64
- peakMegabytesAllocated :: !Int64
- mutatorCpuSeconds :: !Double
- mutatorWallSeconds :: !Double
- gcCpuSeconds :: !Double
- gcWallSeconds :: !Double
- cpuSeconds :: !Double
- wallSeconds :: !Double
- parTotBytesCopied :: !Int64
- parMaxBytesCopied :: !Int64
- getGCStats :: IO GCStats
- getGCStatsEnabled :: IO Bool
Documentation
Global garbage collection and memory statistics.
Since: 4.5.0.0
Constructors
Fields
- 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 byparMaxBytesCopied
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
.
Since: 4.5.0.0
getGCStatsEnabled :: IO Bool Source
Returns whether GC stats have been enabled (with +RTS -T
, for example).
Since: 4.6.0.0