summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/Profiling.hs
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/GHC/Profiling.hs')
-rw-r--r--libraries/base/GHC/Profiling.hs32
1 files changed, 31 insertions, 1 deletions
diff --git a/libraries/base/GHC/Profiling.hs b/libraries/base/GHC/Profiling.hs
index 917a208b30..b7cef2fecd 100644
--- a/libraries/base/GHC/Profiling.hs
+++ b/libraries/base/GHC/Profiling.hs
@@ -2,7 +2,14 @@
{-# LANGUAGE NoImplicitPrelude #-}
-- | @since 4.7.0.0
-module GHC.Profiling where
+module GHC.Profiling ( -- * Cost Centre Profiling
+ startProfTimer
+ , stopProfTimer
+ -- * Heap Profiling
+ , startHeapProfTimer
+ , stopHeapProfTimer
+ , requestHeapCensus
+ )where
import GHC.Base
@@ -17,3 +24,26 @@ foreign import ccall stopProfTimer :: IO ()
--
-- @since 4.7.0.0
foreign import ccall startProfTimer :: IO ()
+
+-- | Request a heap census on the next context switch. The census can be
+-- requested whether or not the heap profiling timer is running.
+-- Note: This won't do anything unless you also specify a profiling mode on the
+-- command line using the normal RTS options.
+--
+-- @since 4.16.0.0
+foreign import ccall requestHeapCensus :: IO ()
+
+-- | Start heap profiling. This is called normally by the RTS on start-up,
+-- but can be disabled using the rts flag `--no-automatic-heap-samples`
+-- Note: This won't do anything unless you also specify a profiling mode on the
+-- command line using the normal RTS options.
+--
+-- @since 4.16.0.0
+foreign import ccall startHeapProfTimer :: IO ()
+
+-- | Stop heap profiling.
+-- Note: This won't do anything unless you also specify a profiling mode on the
+-- command line using the normal RTS options.
+--
+-- @since 4.16.0.0
+foreign import ccall stopHeapProfTimer :: IO ()