Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
GHC.Stats
Contents
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 RTSStats = RTSStats {
- gcs :: Word32
- major_gcs :: Word32
- allocated_bytes :: Word64
- max_live_bytes :: Word64
- max_large_objects_bytes :: Word64
- max_compact_bytes :: Word64
- max_slop_bytes :: Word64
- max_mem_in_use_bytes :: Word64
- cumulative_live_bytes :: Word64
- copied_bytes :: Word64
- par_copied_bytes :: Word64
- cumulative_par_max_copied_bytes :: Word64
- cumulative_par_balanced_copied_bytes :: Word64
- init_cpu_ns :: RtsTime
- init_elapsed_ns :: RtsTime
- mutator_cpu_ns :: RtsTime
- mutator_elapsed_ns :: RtsTime
- gc_cpu_ns :: RtsTime
- gc_elapsed_ns :: RtsTime
- cpu_ns :: RtsTime
- elapsed_ns :: RtsTime
- gc :: GCDetails
- data GCDetails = GCDetails {
- gcdetails_gen :: Word32
- gcdetails_threads :: Word32
- gcdetails_allocated_bytes :: Word64
- gcdetails_live_bytes :: Word64
- gcdetails_large_objects_bytes :: Word64
- gcdetails_compact_bytes :: Word64
- gcdetails_slop_bytes :: Word64
- gcdetails_mem_in_use_bytes :: Word64
- gcdetails_copied_bytes :: Word64
- gcdetails_par_max_copied_bytes :: Word64
- gcdetails_par_balanced_copied_bytes :: Word64
- gcdetails_sync_elapsed_ns :: RtsTime
- gcdetails_cpu_ns :: RtsTime
- gcdetails_elapsed_ns :: RtsTime
- type RtsTime = Int64
- getRTSStats :: IO RTSStats
- getRTSStatsEnabled :: IO Bool
Runtime statistics
Statistics about runtime activity since the start of the
program. This is a mirror of the C struct RTSStats
in RtsAPI.h
Since: 4.10.0.0
Constructors
Fields
- gcs :: Word32
Total number of GCs
- major_gcs :: Word32
Total number of major (oldest generation) GCs
- allocated_bytes :: Word64
Total bytes allocated
- max_live_bytes :: Word64
Maximum live data (including large objects + compact regions) in the heap. Updated after a major GC.
- max_large_objects_bytes :: Word64
Maximum live data in large objects
- max_compact_bytes :: Word64
Maximum live data in compact regions
- max_slop_bytes :: Word64
Maximum slop
- max_mem_in_use_bytes :: Word64
Maximum memory in use by the RTS
- cumulative_live_bytes :: Word64
Sum of live bytes across all major GCs. Divided by major_gcs gives the average live data over the lifetime of the program.
- copied_bytes :: Word64
Sum of copied_bytes across all GCs
- par_copied_bytes :: Word64
Sum of copied_bytes across all parallel GCs
- cumulative_par_max_copied_bytes :: Word64
Sum of par_max_copied_bytes across all parallel GCs. Deprecated.
- cumulative_par_balanced_copied_bytes :: Word64
Sum of par_balanced_copied bytes across all parallel GCs
- init_cpu_ns :: RtsTime
Total CPU time used by the init phase @since 4.12.0.0
- init_elapsed_ns :: RtsTime
Total elapsed time used by the init phase @since 4.12.0.0
- mutator_cpu_ns :: RtsTime
Total CPU time used by the mutator
- mutator_elapsed_ns :: RtsTime
Total elapsed time used by the mutator
- gc_cpu_ns :: RtsTime
Total CPU time used by the GC
- gc_elapsed_ns :: RtsTime
Total elapsed time used by the GC
- cpu_ns :: RtsTime
Total CPU time (at the previous GC)
- elapsed_ns :: RtsTime
Total elapsed time (at the previous GC)
- gc :: GCDetails
Details about the most recent GC
Instances
Instances details
Statistics about a single GC. This is a mirror of the C struct
GCDetails
in RtsAPI.h
, with the field prefixed with gc_
to
avoid collisions with RTSStats
.
Constructors
Fields
- gcdetails_gen :: Word32
The generation number of this GC
- gcdetails_threads :: Word32
Number of threads used in this GC
- gcdetails_allocated_bytes :: Word64
Number of bytes allocated since the previous GC
- gcdetails_live_bytes :: Word64
Total amount of live data in the heap (incliudes large + compact data). Updated after every GC. Data in uncollected generations (in minor GCs) are considered live.
- gcdetails_large_objects_bytes :: Word64
Total amount of live data in large objects
- gcdetails_compact_bytes :: Word64
Total amount of live data in compact regions
- gcdetails_slop_bytes :: Word64
Total amount of slop (wasted memory)
- gcdetails_mem_in_use_bytes :: Word64
Total amount of memory in use by the RTS
- gcdetails_copied_bytes :: Word64
Total amount of data copied during this GC
- gcdetails_par_max_copied_bytes :: Word64
In parallel GC, the max amount of data copied by any one thread. Deprecated.
- gcdetails_par_balanced_copied_bytes :: Word64
In parallel GC, the amount of balanced data copied by all threads
- gcdetails_sync_elapsed_ns :: RtsTime
The time elapsed during synchronisation before GC
- gcdetails_cpu_ns :: RtsTime
The CPU time used during GC itself
- gcdetails_elapsed_ns :: RtsTime
The time elapsed during GC itself
Instances
Instances details
getRTSStats :: IO RTSStats Source #
Get current runtime system statistics.
Since: 4.10.0.0
getRTSStatsEnabled :: IO Bool Source #
Returns whether GC stats have been enabled (with +RTS -T
, for example).
Since: 4.10.0.0