Performance regression relative to 6.10
The attached program runs more slowly when compiled with 6.12 compared to 6.10. The current HEAD is also worse than 6.10, but not as bad as 6.12.
The results are below, on x86-64/Linux, first with -O:
time allocation
6.10.2 9.6s 6.5GB
6.12.20091011 11.0s 7.5GB
6.13.20091111 10.2s 6.2GB
Interestingly, -O2
makes things even worse with 6.12, but makes things slightly better with both 6.10 and 6.13:
time allocation
6.10.2 9.5s 6.5GB
6.12.20091011 11.8s 7.5GB
6.13.20091111 10.1s 6.2GB
It may be that there is some degradation due to the new IO library, since the program generates a fair amount of output. That may account for some of the difference between 6.10.2 and 6.12/6.13, but it doesn't account for the difference between 6.12 and 6.13, which are both using the new IO library.
The program is in one module, compile with no special options. To run it:
./pHlcm mushroom.dat 100 >/dev/null +RTS -s
Trac metadata
Trac field | Value |
---|---|
Version | 6.10.4 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | high |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |