[concurrency-interest] Advice on reuse of ForkJoinTask instances

√iktor Ҡlang 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
>> rather
>> non-straightforward as I'll have to call reinitialize at the end of
>> executing
>> 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
current FJT,
I can probably implement it myself, but I believe that it could be useful
for others as well.

Cheers,
√


>
> -Doug
>
>
> ______________________________**_________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.**oswego.edu <Concurrency-interest at cs.oswego.edu>
> http://cs.oswego.edu/mailman/**listinfo/concurrency-interest<http://cs.oswego.edu/mailman/listinfo/concurrency-interest>
>



-- 
Viktor Klang

Akka Tech Lead
Typesafe <http://www.typesafe.com/> - The software stack for applications
that scale

Twitter: @viktorklang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20120320/d495ad6d/attachment.html>


More information about the Concurrency-interest mailing list