Skip to content

RTS stats show wrong productivity.

I have this report after runnig my program:

  INIT    time    0.000s  (  0.001s elapsed)
  MUT     time   29.344s  ( 56.484s elapsed)
  GC      time    4.306s  (  1.589s elapsed)
  EXIT    time    0.000s  (  0.001s elapsed)
  Total   time   33.649s  ( 58.075s elapsed)

  Alloc rate    1,530,969,741 bytes per MUT second

  Productivity  87.2% of total user, 50.5% of total elapsed

Elapsed productivity is wrong.

It should be MUT elapsed / Total elapsed = 56.484 / 58.075 = 0.972

but it looks like MUT user / Total elapsed = 29.344 / 58.075 = 0.505

Looks like the code at https://github.com/ghc/ghc/blob/a88bb1b1518389817583290acaebfd6454aa3cec/rts/Stats.c#L702-L704 uses wrong numerator for elapsed value.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC simonmar
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information