Benchmark crashes on Java 8 EA
Aleksey Shipilev
aleksey.shipilev at oracle.com
Wed Feb 26 11:32:27 PST 2014
On 02/26/2014 10:43 PM, Aleksey Shipilev wrote:
> On 02/26/2014 10:30 PM, Daniel Mitterdorfer wrote:
>> May I jump in? I haven't used Chris' object-pool-benchmarks project
>> before but I've tried it now out of keen interest and can confirm the
>> described behavior. Steps to reproduce on my machine:
>
> Got it reproduced, thanks. Let's see...
This is a genuine JVM crash (segfault). I pinpointed this to forcing the
inlining of "objectpoolbenchmark/suite/ClaimRelease.claimRelease". This
explains why non-forked VMs are working fine: @CompilerControl is not
passed there.
I have a suspicion this is somehow related to ClaimRelease.claimRelease
being the recursive method, will follow up on that with VM guys.
Meanwhile, it the workaround seems to be:
diff --git a/src/main/java/objectpoolbenchmark/suite/ClaimRelease.java
b/src/main/java/objectpoolbenchmark/suite/ClaimRelease.java
index df9deb6..6854be8 100644
--- a/src/main/java/objectpoolbenchmark/suite/ClaimRelease.java
+++ b/src/main/java/objectpoolbenchmark/suite/ClaimRelease.java
@@ -59,7 +59,7 @@ public abstract class ClaimRelease
claimRelease(claimsLeft);
}
- @CompilerControl(CompilerControl.Mode.INLINE)
+// @CompilerControl(CompilerControl.Mode.INLINE)
private void claimRelease(int claimsLeft) throws Exception {
if (claimsLeft == 0) {
return;
Thanks,
-Aleksey.
More information about the jmh-dev
mailing list