What could possibly be the reason of new GC-related problems after upgrading from ghc-7.6 to ghc-7.8.3 ?

Recently I revived one of my projects set aside a year ago. As I'm an archlinux user, the ghc version has now inevitably become 7.8.3. Unfortunatly, the program starts to somehow have very bad GC performance (less than 50% productivity) . While I don't have the statistics of the older versions I'm pretty sure the current version has become visually less responsive. And if the user performs a series of actions in quick succession, the heap is not garbage collected in time and overflows. If the user performs the same actions with longer pauses then everything is fine. The GC seems to have become more loose in 7.8. There is quite a large underdocumented pile of code so I don't think posting it here would help. But can anyone give me a hint about what could be the reason?

Have you done any heap profiling? Eg 7.6 vs 7.8 heap profiles?
On Nov 18, 2014 8:45 AM, "ducis"
Recently I revived one of my projects set aside a year ago. As I'm an archlinux user, the ghc version has now inevitably become 7.8.3. Unfortunatly, the program starts to somehow have very bad GC performance (less than 50% productivity) . While I don't have the statistics of the older versions I'm pretty sure the current version has become visually less responsive. And if the user performs a series of actions in quick succession, the heap is not garbage collected in time and overflows. If the user performs the same actions with longer pauses then everything is fine. The GC seems to have become more loose in 7.8. There is quite a large underdocumented pile of code so I don't think posting it here would help. But can anyone give me a hint about what could be the reason?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I have done heap profiling on 7.8 and identified several hot spots but returning to 7.6 requires pretty a lot of configuration and waiting. There are hotspots, but as I have mentioned the code is convoluted and I don't think anyone will be able to really understand the code snippets if I post them here. I'm mainly looking for general hints and heuristics about how the GC would behave differently when upgraded to 7.8.
At 2014-11-18 22:24:25, "Carter Schonwald"

Please share the code or a minimal repro of the problem or there is no way
to help
On Nov 18, 2014 9:48 AM, "ducis"
I have done heap profiling on 7.8 and identified several hot spots but returning to 7.6 requires pretty a lot of configuration and waiting. There are hotspots, but as I have mentioned the code is convoluted and I don't think anyone will be able to really understand the code snippets if I post them here. I'm mainly looking for general hints and heuristics about how the GC would behave differently when upgraded to 7.8.
At 2014-11-18 22:24:25, "Carter Schonwald"
wrote: Have you done any heap profiling? Eg 7.6 vs 7.8 heap profiles? On Nov 18, 2014 8:45 AM, "ducis"
wrote: Recently I revived one of my projects set aside a year ago. As I'm an archlinux user, the ghc version has now inevitably become 7.8.3. Unfortunatly, the program starts to somehow have very bad GC performance (less than 50% productivity) . While I don't have the statistics of the older versions I'm pretty sure the current version has become visually less responsive. And if the user performs a series of actions in quick succession, the heap is not garbage collected in time and overflows. If the user performs the same actions with longer pauses then everything is fine. The GC seems to have become more loose in 7.8. There is quite a large underdocumented pile of code so I don't think posting it here would help. But can anyone give me a hint about what could be the reason?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hello Ducis, It's hard to say without more information. This sort of resembles behavior from "Thread behavior in 7.8.3"; you might try modifying the RTS flag -C to have a lower number (like 0.001). Edward Excerpts from ducis's message of 2014-11-18 03:27:18 -0800:
Recently I revived one of my projects set aside a year ago. As I'm an archlinux user, the ghc version has now inevitably become 7.8.3. Unfortunatly, the program starts to somehow have very bad GC performance (less than 50% productivity) . While I don't have the statistics of the older versions I'm pretty sure the current version has become visually less responsive. And if the user performs a series of actions in quick succession, the heap is not garbage collected in time and overflows. If the user performs the same actions with longer pauses then everything is fine. The GC seems to have become more loose in 7.8. There is quite a large underdocumented pile of code so I don't think posting it here would help. But can anyone give me a hint about what could be the reason?
participants (3)
-
Carter Schonwald
-
ducis
-
Edward Z. Yang