Re: ForkJoin refresh

"Dr Heinz M. Kabutz via Concurrency-interest" <[email protected]>
Newsgroups gmane.comp.java.jsr.166-concurrency
Organization JavaSpecialists.eu
Message-ID <[email protected]>
Thanks Doug - how different is this to the Java 14-EA version?  I 
noticed the ManagedBlocker implementation today whilst showing the 
Condition.await() implementation to a class I was teaching and even 
tweeted about it: https://twitter.com/heinzkabutz/status/1218204292626243585

Funny coincidence :-)

Regards

Heinz
-- 
Dr Heinz M. Kabutz (PhD CompSci)
Author of "The Java™ Specialists' Newsletter" - www.javaspecialists.eu
Java Champion - www.javachampions.org
JavaOne Rock Star Speaker
Tel: +30 69 75 595 262
Skype: kabutz

On 2020/01/17 16:39, Doug Lea via Concurrency-interest wrote:
> Now committed in jsr166 are extensions of the AQS refresh of last fall
> to also cover ForkJoin; among other things removing reliance on builtin
> monitors  The extra few months were mainly a result of noticing that the
> initial way I did this increased performance differences across garbage
> collectors. These are now reduced (not increased), but still worth
> noting: FJ programs are relatively sensitive to GC choice because they
> entail work-stealing duels between program and collector. On hotspot,
> usually the best throughput for divide-and-conquer style usages
> (including parallelStreams) is with -XX:+UseParallelGC. For unstructured
> computations with lots of little tasks (for example little
> CompletableFutures), UseShenandoahGC (and/or if needing more than 32GB
> heap, UseZGC) are often better choices.  UseParallelGC meshes well with
> highly generational structured parallelism, but is prone to
> card-mark-contention with small tasks (even with -XX:+UseCondCardMark)
> and long pauses. The default UseG1GC tends to be somewhere in the
> middle. Also, on linux, using -XX:+UseTransparentHugePages seems to
> always be a good idea for programs using FJ. (Other switches seem to
> have less consistent positive effects.)
>
> These days, it is almost impossible to quantify exactly how much better
> performance is, but it's likely that your usages are faster. For
> example, about half of the programs in the recent Renaissance Suite
> (https://renaissance.dev/) somehow use FJ, and most of these have
> improved scores on most machines, most JVMs (including OpenJ9 and
> Graal), most collectors, most phases of the moon....
>
> It would be great to get feedback from other usages before integrating
> into OpenJDK. As usual, you can try it with any JDK11+ JVM by grabbing
> http://gee.cs.oswego.edu/dl/concurrent/dist/jsr166.jar and running "java
> --patch-module java.base="$DIR/jsr166.jar", where DIR is the full file
> prefix. (Although beware that using --patch-module slows down startup,
> and occasionally entire test runs. For other options, see
> http://gee.cs.oswego.edu/dl/concurrency-interest/index.html).
>
> -Doug
>
> _______________________________________________
> Concurrency-interest mailing list
> [email protected]
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
_______________________________________________
Concurrency-interest mailing list
[email protected]
http://cs.oswego.edu/mailman/listinfo/concurrency-interest
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.