Great job.

2009/5/18 David Pollak <>:
> Folks,
> As you all may or may not know, I've been battling memory retention issues
> with the Scala Actor libraries for 6 or so months now.  I believe that I've
> finally nailed the complete issues.
> They are as follows:
> There is an object called ActorGC that keeps track of all the actors in the
> system.  Due to the implementation as some other bugs in the Actor library,
> the ActorGC code retains references to all Actors that have been created
> until there is significant pressure on the garbage collector, then the
> references may or may not be released.  In order to combat this, I wrote
> code that uses reflection to look through the ActorGC retained references
> and I unretain the references for all Actors that have exited.
> The Actor library sits on top of a modified version of Doug Lea's ForkJoin
> library.  Due to bugs in the library or bugs in the enhancements, the
> library retains references to a substantial number of messages that have
> ever been sent from one Actor to another.  I've replaced the default
> scheduler with a scheduler based on the java.util.concurrent library with a
> default of 10 worker threads.  If you want to use the standard Scala Actor
> scheduler, in Boot, set ActorSchedulerFixer.performFix = false
> I've been running a stress test against the new code that in the past would
> result in retaining 32MB of memory over a 30 minute period.  Over the last
> 30 minutes it has not retained any memory.
> I've started a thread on the Scala internals list and I hope that we'll be
> able to get the Actors fixed up for the 2.8 release.
> The above fixes will only impact you if you rely on particular facits of the
> existing Actor scheduling or ActorGC classes.
> Thanks,
> David
> --
> Lift, the simply functional web framework
> Beginning Scala
> Follow me:
> Git some:
> >

Jonas Bonér

twitter: @jboner

You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to