[concurrency-interest] Advice on reuse of ForkJoinTask instances
viktor.klang at gmail.com
Tue Mar 20 08:09:33 EDT 2012
On Tue, Mar 20, 2012 at 11:47 AM, Doug Lea <dl at cs.oswego.edu> wrote:
> On 03/19/12 12:52, √iktor Ҡlang wrote:
>> We're using the latest incarnation of the ForkJoinPool in Akka,
>> and I was looking at reducing allocations in the hot path, and
>> essentially the
>> only thing left to remove is to remove the creation of a FJT for every
>> submission (and we have _lots_ of those), but unfortunately it seems
>> non-straightforward as I'll have to call reinitialize at the end of
>> the FJT.
> There are a few common cases where it is easy and effective
> to reuse FJTs, for example when building trees of recurring
> computations. (The FJJacobi program in our CVS src/tests/loops
> has one example.) But in most other cases, GC will do a better
> job of managing space than you can. FJ is extremely friendly
> to generational collectors -- most tasks become garbage and
> reclaimable almost immediately, and managing the others is done
> better using GC mechanics than almost anything else you could do.
> Usually a better tactic is to minimize any auxiliary object
> creation needed to start or process a task. Often enough,
> these other objects are less GC-friendly. Among other steps,
> it is usually worthwhile to "flatten" tasks so that they
> contain all necessary state for execution without creating other
> transient objects. For example, in graph algorithms, it often
> works nicely to make each node itself a ForkJoinTask.
We're talking about _alot_ of submissions here :-)
To get 0 allocations in my hot path I'd want to be able to resubmit the
I can probably implement it myself, but I believe that it could be useful
for others as well.
> Concurrency-interest mailing list
> Concurrency-interest at cs.**oswego.edu <Concurrency-interest at cs.oswego.edu>
Akka Tech Lead
Typesafe <http://www.typesafe.com/> - The software stack for applications
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest