Heap used by compacting collector larger than heap used without.
When you run a program that slowly accumulates memory with +RTS -M100M -c, the memory space used by the application will grow to around 200MB and it will crash with an out of heap error when the live data is around 100MB.
On the other hand if you run the program with +RTS -M100M, the memory space used by the application will grow to around 100MB and it will crash with an out of heap error when the live data is around 50MB.
This different interpretation of -Mfoo is confusing for the user. I find the latter interpretation more natural than the former.
Trac metadata
Trac field | Value |
---|---|
Version | 6.12.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Runtime System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |