dc.contributor.author | GREGG, DAVID | |
dc.contributor.author | MCCANDLESS, JASON MARSHALL | |
dc.date.accessioned | 2012-06-27T14:09:21Z | |
dc.date.available | 2012-06-27T14:09:21Z | |
dc.date.created | August 24-26, 2011 | en |
dc.date.issued | 2011 | |
dc.date.submitted | 2011 | en |
dc.identifier.citation | J. McCandless and D. Gregg, Optimizing interpreters by tuning opcode orderings on virtual machines for modern architectures, Conference on the Principles and Practice of Programming in Java, PPPJ 11, Kongens Lyngby, Denmark, August 24-26, 2011, ACM, 2011, 161 - 170 | en |
dc.identifier.other | Y | |
dc.description | PUBLISHED | en |
dc.description.abstract | Virtual machines (VMs) are commonly used to implement programming languages such as Java, Python and Lua. VMs are typically implemented using an interpreter, a JIT compiler, or some combination of the two. A long-standing question in the design of VM interpreters is whether it is worthwhile to reorder the cases in
the main interpreter loop to improve code locality. We investigate this phenomenon using an iterative, feedback-directed approach. We show that the ordering of the cases in the interpreter loop has a signi?cant impact on performance on recent processors. Using hardware performance counters, we demonstrate that the performance improvement is primarily the result of indirect branch prediction, not instruction cache locality. We propose a number of strategies to achieve better orderings, and evaluate these strategies in the Python and Lua virtual machine interpreters. We show speedups of up to 40%. | en |
dc.format.extent | 161 | en |
dc.format.extent | 170 | en |
dc.language.iso | en | en |
dc.publisher | ACM | en |
dc.rights | Y | en |
dc.subject | Computer sciences | en |
dc.subject | Programming | en |
dc.subject | Virtual machines | en |
dc.subject | Lua | en |
dc.subject | Python | en |
dc.title | Optimizing interpreters by tuning opcode orderings on virtual machines for modern architectures | en |
dc.title.alternative | Conference on the Principles and Practice of Programming in Java, PPPJ 11 | en |
dc.type | Conference Paper | en |
dc.type.supercollection | scholarly_publications | en |
dc.type.supercollection | refereed_publications | en |
dc.identifier.peoplefinderurl | http://people.tcd.ie/mccandjm | |
dc.identifier.peoplefinderurl | http://people.tcd.ie/dgregg | |
dc.identifier.rssinternalid | 75392 | |
dc.contributor.sponsor | Irish Research Council for Science Engineering and Technology | en |
dc.identifier.uri | http://hdl.handle.net/2262/64047 | |