[Haskell-cafe] Real-time garbage collection for Haskell
dagit at codersbase.com
Thu Mar 4 14:22:08 EST 2010
On Thu, Mar 4, 2010 at 11:10 AM, Don Stewart <dons at galois.com> wrote:
> > On 2010-03-01 19:37 +0000 (Mon), Thomas Schilling wrote:
> > > A possible workaround would be to sprinkle lots of 'rnf's around your
> > > code....
> > As I learned rather to my chagrin on a large project, you generally
> > don't want to do that. I spent a couple of days writing instance
> > of NFData and loading up my application with rnfs and then watched
> > performance fall into a sinkhole.
> > I believe that the problem is that rnf traverses the entirety of a large
> > data structure even if it's already strict and doesn't need traversal.
> > My guess is that doing this frequently on data structures (such as Maps)
> > of less than tiny size was blowing out my cache.
> And rnf will do the traversal whether it is needed or not.
> Imo, it is better to ensure the structures you want are necessarily
> strict by definition, so that only the minimum additional evaluation is
Isn't the downside of strict structures the implicit nature of the
'strictification'? You lose the fine grained control of when particular
values should be strict.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe