We propose a method which provides a optimization for the OpenJDK interpreter without requiring a JIT or platform-specific code ("inline assembly"). By using code generation to generate an application specific interpreter it is possible to offer increased performance for those applications. The interpreter is generated by use of a profile from the running application which identifies hotspots and often-executed paths and converts common sequences of bytecode instructions to a single sequence of C++ code representing a single "superinstruction", which can then be compiled to a binary application by a C++ compiler. Java bytecode is converted to these superinstructions by a matching algorithm, and performance is improved by a reduction in the number of instruction dispatches in the interpreter loop. Various algorithms for deciding the best sequences of bytecodes to compile and various matching algorithms to -- at class load time -- map bytecode instructions to these superinstructions are discussed.
Thursday 5 December 2019 15:45
More events
- Mon 15 12:45 - Mon 22 Apr 2024 18:00Women in Data Science Week
- Sat 20 Apr 2024 13:00 - 13:45Twentse Beiaard Dag 2024
- Tue 23 Apr 2024 15:30 - 18:00Boat Reveal 2024 | Solar Boat Twente
- Tue 23 Apr 2024 19:30 - 21:00Birdwatching with Arjan Dwarshuis
- Fri 26 Apr 2024 09:30 - 17:00Competing with Digital Servitization