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 |