When trying MLVM, I have make the following test as in attachment
"Test.java".
I have compiled and runned it three times (cf. "cmd.log") with bad
expected behaviour (only partial loop, not running up to 100000), and
one time with a crash (cf. "hs_err_pid1008.log").
Are these problems already known bugs?
Thank you very much,
Daniel.
Attachments:
- Test.java
- cmd.log
- hs_err_pid1008.log
import java.dyn.MethodHandle;
import java.dyn.MethodHandles;
import java.dyn.MethodType;
public class Test {
private static int N = 100000;
public static void runDirect() {
long begin = System.nanoTime();
String value = "0";
for (int i = 0; i < N; i++) {
value = increment(value);
}
long end = System.nanoTime();
System.out.println("Direct (" + value + "): " + (end - begin) / N);
}
public static String increment(String value) {
// return new String(value);
return Integer.toString(1 + Integer.parseInt(value));
}
public static void runHandle() {
long begin = System.nanoTime();
final MethodType type = MethodType.methodType(String.class,
String.class);
MethodHandle increment =
MethodHandles.publicLookup().findStatic(Test.class, "increment", type);
String value = "0";
for (int i = 0; i < N; i++) {
value = increment.<String>invoke(value);
}
long end = System.nanoTime();
System.out.println("Handle (" + value + "): " + (end - begin) / N);
}
public static void main(String[] args) {
runDirect();
runHandle();
runDirect();
runHandle();
runDirect();
runHandle();
runDirect();
runHandle();
runDirect();
runHandle();
runDirect();
runHandle();
}
}
C:\Users\daniel\Documents\NetBeansProjects\Test\src>"C:\Program
Files\Java\jdk1.7.0\bin\javac.exe" Test.java
C:\Users\daniel\Documents\NetBeansProjects\Test\src>"C:\Program
Files\Java\jdk1.7.0\bin\java.exe" -XX:+UnlockExperimentalVMOptions
-XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Test
Direct (100000): 314
Handle (25740): 134
Direct (100000): 268
Handle (12496): 33
Direct (100000): 249
Handle (1): -26146065716372
Direct (100000): 221
Handle (1): -26146065716091
Direct (100000): 220
Handle (1): -26146065715813
Direct (100000): 230
Handle (1): -26146065715523
C:\Users\daniel\Documents\NetBeansProjects\Test\src>"C:\Program
Files\Java\jdk1.7.0\bin\java.exe" -XX:+UnlockExperimentalVMOptions
-XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Test
Direct (100000): 311
Handle (25740): 134
Direct (100000): 230
Handle (12496): 31
Direct (100000): 220
Handle (1): -26146065581142
Direct (100000): 225
Handle (1): -26146065580859
Direct (100000): 221
Handle (1): -26146065580579
Direct (100000): 220
Handle (1): -26146065580300
C:\Users\daniel\Documents\NetBeansProjects\Test\src>"C:\Program
Files\Java\jdk1.7.0\bin\java.exe" -XX:+UnlockExperimentalVMOptions
-XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Test
Direct (100000): 313
Handle (25740): 133
Direct (100000): 228
Handle (12496): 32
Direct (100000): 222
Handle (1): -26146065545629
Direct (100000): 221
Handle (1): -26146065545349
Direct (100000): 222
Handle (1): -26146065545069
Direct (100000): 220
Handle (1): -26146065544790
C:\Users\daniel\Documents\NetBeansProjects\Test\src>"C:\Program
Files\Java\jdk1.7.0\bin\java.exe" -XX:+UnlockExperimentalVMOptions
-XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Test
Direct (100000): 311
Handle (25740): 137
Direct (100000): 228
Handle (12496): 32
Direct (100000): 223
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d965f33, pid=1008, tid=3012
#
# JRE version: 7.0-b80
# Java VM: Java HotSpot(TM) Client VM (17.0-b07 mixed mode, sharing windows-x86
)
# Problematic frame:
# V [jvm.dll+0xb5f33]
#
# An error report file with more information is saved as:
# C:\Users\daniel\Documents\NetBeansProjects\Test\src\hs_err_pid1008.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d965f33, pid=1008, tid=3012
#
# JRE version: 7.0-b80
# Java VM: Java HotSpot(TM) Client VM (17.0-b07 mixed mode, sharing windows-x86
)
# Problematic frame:
# V [jvm.dll+0xb5f33]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x02349000): JavaThread "main" [_thread_in_vm, id=3012,
stack(0x00340000,0x00390000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x00000000
Registers:
EAX=0x00000000, EBX=0x0038fc90, ECX=0x02340d70, EDX=0x02340d70
ESP=0x0038f4cc, EBP=0x0038f4e4, ESI=0x0038f654, EDI=0x00000000
EIP=0x6d965f33, EFLAGS=0x00010246
Top of Stack: (sp=0x0038f4cc)
0x0038f4cc: 0038f518 0038f5d8 00000000 0038fc90
0x0038f4dc: 246d2e40 00000000 0038f4fc 6d966041
0x0038f4ec: 0038f5d8 0038f518 023cf724 023cf108
0x0038f4fc: 0038f67c 6d9a88a9 0038f5d8 0038f518
0x0038f50c: 023499dc 02349618 02349000 00000002
0x0038f51c: 02349638 0038f530 6da061a7 01349638
0x0038f52c: 02349638 0038f640 6da079ff 02349620
0x0038f53c: 02349620 02349638 02349638 fffffffe
Instructions: (pc=0x6d965f33)
0x6d965f23: fc 3b f8 77 09 8b 57 08 03 d7 3b c2 72 02 33 ff
0x6d965f33: 8b 07 8b cf ff 50 04 f6 d8 1b c0 23 c7 8b c8 74
Stack: [0x00340000,0x00390000], sp=0x0038f4cc, free space=13d0038f000k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xb5f33]
V [jvm.dll+0xb6041]
V [jvm.dll+0xf88a9]
V [jvm.dll+0xf8a38]
V [jvm.dll+0x1182ba]
C [java.dll+0x3f17]
j java.lang.Throwable.<init>()V+10
j java.lang.Exception.<init>()V+1
j java.lang.RuntimeException.<init>()V+1
j java.lang.NullPointerException.<init>()V+1
v ~StubRoutines::call_stub
V [jvm.dll+0xf374c]
V [jvm.dll+0x185ad1]
V [jvm.dll+0xf3afa]
V [jvm.dll+0xaee52]
V [jvm.dll+0xaeffb]
V [jvm.dll+0xaf063]
V [jvm.dll+0x1aa10c]
V [jvm.dll+0x5a941]
v ~RuntimeStub::throw_null_pointer_exception Runtime1 stub
J Test.runHandle()V
j Test.main([Ljava/lang/String;)V+15
v ~StubRoutines::call_stub
V [jvm.dll+0xf374c]
V [jvm.dll+0x185ad1]
V [jvm.dll+0xf37cd]
V [jvm.dll+0xfd065]
V [jvm.dll+0x104cbd]
C [java.exe+0x1fbf]
C [java.exe+0x8d4f]
C [kernel32.dll+0x4d0e9]
C [ntdll.dll+0x419bb]
C [ntdll.dll+0x4198e]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.Throwable.fillInStackTrace()Ljava/lang/Throwable;+0
j java.lang.Throwable.<init>()V+10
j java.lang.Exception.<init>()V+1
j java.lang.RuntimeException.<init>()V+1
j java.lang.NullPointerException.<init>()V+1
v ~StubRoutines::call_stub
v ~RuntimeStub::throw_null_pointer_exception Runtime1 stub
J Test.runHandle()V
[error occurred during error reporting (printing Java stack), id 0xc0000005]
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x022d8c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=1980,
stack(0x04490000,0x044e0000)]
0x022bd000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3052,
stack(0x04440000,0x04490000)]
0x022bb400 JavaThread "Attach Listener" daemon [_thread_blocked, id=3940,
stack(0x043f0000,0x04440000)]
0x022ba400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1320,
stack(0x043a0000,0x043f0000)]
0x022b4c00 JavaThread "Finalizer" daemon [_thread_blocked, id=3936,
stack(0x04350000,0x043a0000)]
0x022b0000 JavaThread "Reference Handler" daemon [_thread_blocked, id=2052,
stack(0x01b90000,0x01be0000)]
=>0x02349000 JavaThread "main" [_thread_in_vm, id=3012,
stack(0x00340000,0x00390000)]
Other Threads:
0x022ae400 VMThread [stack: 0x01b40000,0x01b90000] [id=1268]
0x022e2400 WatcherThread [stack: 0x044e0000,0x04530000] [id=1004]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 4928K, used 3044K [0x24200000, 0x24750000,
0x29750000)
eden space 4416K, 66% used [0x24200000, 0x244dad18, 0x24650000)
from space 512K, 23% used [0x246d0000, 0x246ee5b8, 0x24750000)
to space 512K, 0% used [0x24650000, 0x24650000, 0x246d0000)
tenured generation total 10944K, used 0K [0x29750000, 0x2a200000, 0x34200000)
the space 10944K, 0% used [0x29750000, 0x29750000, 0x29750200, 0x2a200000)
compacting perm gen total 12288K, used 264K [0x34200000, 0x34e00000,
0x38200000)
the space 12288K, 2% used [0x34200000, 0x34242210, 0x34242400, 0x34e00000)
ro space 10240K, 57% used [0x38200000, 0x387c8238, 0x387c8400, 0x38c00000)
rw space 12288K, 53% used [0x38c00000, 0x3926cf98, 0x3926d000, 0x39800000)
Dynamic libraries:
0x00400000 - 0x00425000 C:\Program Files\Java\jdk1.7.0\bin\java.exe
0x773f0000 - 0x77517000 C:\Windows\system32\ntdll.dll
0x75aa0000 - 0x75b7c000 C:\Windows\system32\kernel32.dll
0x76ab0000 - 0x76b76000 C:\Windows\system32\ADVAPI32.dll
0x77530000 - 0x775f3000 C:\Windows\system32\RPCRT4.dll
0x77080000 - 0x7711d000 C:\Windows\system32\USER32.dll
0x77600000 - 0x7764b000 C:\Windows\system32\GDI32.dll
0x74750000 - 0x748ee000
C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6002.18005_none_5cb72f96088b0de0\COMCTL32.dll
0x75e60000 - 0x75f0a000 C:\Windows\system32\msvcrt.dll
0x77020000 - 0x77079000 C:\Windows\system32\SHLWAPI.dll
0x76e70000 - 0x76e8e000 C:\Windows\system32\IMM32.DLL
0x75d10000 - 0x75dd8000 C:\Windows\system32\MSCTF.dll
0x76e60000 - 0x76e69000 C:\Windows\system32\LPK.DLL
0x77340000 - 0x773bd000 C:\Windows\system32\USP10.dll
0x7c340000 - 0x7c396000 C:\Program
Files\Java\jdk1.7.0\jre\bin\msvcr71.dll
0x6d8b0000 - 0x6db53000 C:\Program
Files\Java\jdk1.7.0\jre\bin\client\jvm.dll
0x74430000 - 0x74462000 C:\Windows\system32\WINMM.dll
0x76c10000 - 0x76d55000 C:\Windows\system32\ole32.dll
0x76a20000 - 0x76aad000 C:\Windows\system32\OLEAUT32.dll
0x743f0000 - 0x7442d000 C:\Windows\system32\OLEACC.dll
0x758d0000 - 0x758fc000 C:\Windows\system32\apphelp.dll
0x6d850000 - 0x6d85b000 C:\Program
Files\Java\jdk1.7.0\jre\bin\verify.dll
0x6d380000 - 0x6d39f000 C:\Program Files\Java\jdk1.7.0\jre\bin\java.dll
0x6d300000 - 0x6d308000 C:\Program Files\Java\jdk1.7.0\jre\bin\hpi.dll
0x75a90000 - 0x75a97000 C:\Windows\system32\PSAPI.DLL
0x6d890000 - 0x6d8a2000 C:\Program Files\Java\jdk1.7.0\jre\bin\zip.dll
VM Arguments:
jvm_args: -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles
-XX:+EnableInvokeDynamic
java_command: Test
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Python25;C:\Python25\gdalwin32-1.6\bin;"C:\Program
Files\CyberLink\Power2Go\";"C:\Program Files\TortoiseSVN\bin";"C:\Program
Files\QuickTime\QTSystem\";C:\Program
Files\TortoiseSVN\bin;C:\Python26;C:\gdalwin32-1.6\bin;"C:\Program
Files\MuseScore 0.9\bin"
USERNAME=daniel
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows Vista Build 6002 Service Pack 2
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping
13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
Memory: 4k page, physical 2086164k(859872k free), swap 4429636k(2817668k free)
vm_info: Java HotSpot(TM) Client VM (17.0-b07) for windows-x86 JRE
(1.7.0-ea-b80), built on Jan 21 2010 04:47:33 by "java_re" with MS VC++ 7.1
(VS2003)
time: Tue Jan 26 09:33:42 2010
elapsed time: 0 seconds
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev