提交 bc6e7eaf 编写于 作者: D dl

8080623: CPU overhead in FJ due to spinning in awaitWork

Reviewed-by: chegar, dholmes
上级 85da9ab0
...@@ -1323,13 +1323,16 @@ public class ForkJoinPool extends AbstractExecutorService { ...@@ -1323,13 +1323,16 @@ public class ForkJoinPool extends AbstractExecutorService {
/** /**
* Number of times to spin-wait before blocking. The spins (in * Number of times to spin-wait before blocking. The spins (in
* awaitRunStateLock and awaitWork) currently use randomized * awaitRunStateLock and awaitWork) currently use randomized
* spins. If/when MWAIT-like intrinsics becomes available, they * spins. Currently set to zero to reduce CPU usage.
* may allow quieter spinning. The value of SPINS must be a power *
* of two, at least 4. The current value causes spinning for a * If greater than zero the value of SPINS must be a power
* small fraction of typical context-switch times, well worthwhile * of two, at least 4. A value of 2048 causes spinning for a
* given the typical likelihoods that blocking is not necessary. * small fraction of typical context-switch times.
*
* If/when MWAIT-like intrinsics becomes available, they
* may allow quieter spinning.
*/ */
private static final int SPINS = 1 << 11; private static final int SPINS = 0;
/** /**
* Increment for seed generators. See class ThreadLocal for * Increment for seed generators. See class ThreadLocal for
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册