X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fprofiling.xml;h=00bbcdb8d4404e01c5b535be71cbf9e36cc26f37;hb=4d8c7c976104d2e39a1183967ec0f254a0fc0a47;hp=4d6e835c251cca44349f635528c2ca99c7590782;hpb=9ca114a5840d8d00320e90c047022fa2ca1fa668;p=ghc-hetmet.git diff --git a/docs/users_guide/profiling.xml b/docs/users_guide/profiling.xml index 4d6e835..00bbcdb 100644 --- a/docs/users_guide/profiling.xml +++ b/docs/users_guide/profiling.xml @@ -249,8 +249,8 @@ MAIN MAIN 0 0.0 0.0 100.0 100.0 Cost centres are just program annotations. When you say to the compiler, it automatically inserts a cost centre annotation around every top-level function - in your program, but you are entirely free to add the cost - centre annotations yourself. + not marked INLINE in your program, but you are entirely free to + add the cost centre annotations yourself. The syntax of a cost centre annotation is @@ -280,7 +280,12 @@ main = do let xs = {-# SCC "X" #-} [1..1000000] which gives this heap profile when run: - + + @@ -396,7 +401,9 @@ x = nfib 25 GHC will automatically add _scc_ constructs for all - top-level, exported functions. + top-level, exported functions not marked INLINE. If you + want a cost centre on an INLINE function, you have to add + it manually. @@ -406,9 +413,11 @@ x = nfib 25 - All top-level functions, - exported or not, will be automatically - _scc_'d. + All top-level functions + not marked INLINE, exported or not, will be automatically + _scc_'d. + The functions marked INLINE must be given a cost centre + manually. @@ -453,9 +462,10 @@ x = nfib 25 - or : + or or : + time profile @@ -467,9 +477,24 @@ x = nfib 25 The option produces a more detailed report containing the actual time and allocation data as well. (Not used much.) + + The option produces the most detailed + report containing all cost centres in addition to the actual time + and allocation data. + + + RTS + option + + Sets the interval that the RTS clock ticks at, which is + also the sampling interval of the time and allocation profile. + The default is 0.02 second. + + + @@ -735,7 +760,8 @@ x = nfib 25 0.1 second). Fractions are allowed: for example will get 5 samples per second. This only affects heap profiling; time profiles are always - sampled on a 1/50 second frequency. + sampled with the frequency of the RTS clock. See + for changing that. @@ -1758,7 +1784,6 @@ Total bytes copied during GC: 190096