Threaded Execution as a Dual to Native Code
Threaded execution has been used as a higher performance alternative to a byte-code interpreter, by utilizing hardware dispatch to replace software interpreter dispatch.
Traditional JIT code is compiled from byte-code to native code for the current machine, with an even higher performance result. Unfortunately, when debugging is required for a method, most JIT-based interpreters discard the JIT code and revert to the byte-code interpreter. Additionally, switching between interpreted code and native code requires clever trampolines to bring the models into alignment.
We describe a technique that maintains the threaded code and native code as parallel implementations of the program. This provides seamless transitions between the implementations and supports full debugging, while providing near full native execution performance.
Mon 13 MarDisplayed time zone: Osaka, Sapporo, Tokyo change
09:00 - 10:30 | MoreVMs IMoreVMs at Faculty of Engineering Building 6, Seminar Room A Chair(s): Stefan Marr University of Kent | ||
09:00 15mDay opening | Workshop opening MoreVMs | ||
09:15 25mTalk | A Compact and Extensible Portable Scheme VM MoreVMs Pre-print | ||
09:40 25mTalk | Threaded Execution as a Dual to Native Code MoreVMs Dave Mason Toronto Metropolitan University (formerly Ryerson University) | ||
10:05 25mTalk | Parallel garbage collector and thin monitor locks for SubstrateVM MoreVMs Dmitry Chuyko BellSoft |