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 |