[Haskell-cafe] Real-time garbage collection for Haskell

Jason Dagit 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:

> cjs:
> > 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
> necessary.

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...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100304/5f93a458/attachment.html

More information about the Haskell-Cafe mailing list