Sie befinden Sich nicht im Netzwerk der Universität Paderborn. Der Zugriff auf elektronische Ressourcen ist gegebenenfalls nur via VPN oder Shibboleth (DFN-AAI) möglich. mehr Informationen...
ACM transactions on architecture and code optimization, 2014-02, Vol.11 (1), p.1-24
2014

Details

Autor(en) / Beteiligte
Titel
Efficient hosted interpreters on the JVM
Ist Teil von
  • ACM transactions on architecture and code optimization, 2014-02, Vol.11 (1), p.1-24
Ort / Verlag
ACM
Erscheinungsjahr
2014
Link zum Volltext
Quelle
EZB Electronic Journals Library
Beschreibungen/Notizen
  • Many guest languages are implemented using the Java Virtual Machine (JVM) as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good performance. Hosted interpreters are comparatively simpler to implement but until now have suffered from poor performance. We studied the performance of hosted interpreters and identified common bottlenecks preventing their efficient execution. First, similar to interpreters written in C/C++, instruction dispatch is expensive on the JVM. Second, Java's semantics require expensive runtime exception checks that negatively affect array performance essential to interpreters. We present two optimizations targeting these bottlenecks and show that the performance of optimized interpreters increases dramatically: we report speedups by a factor of up to 2.45 over the Jython interpreter, 3.57 over the Rhino interpreter, and 2.52 over the JRuby interpreter, respectively. The resulting performance is comparable with that of custom compilers. Our optimizations are enabled by a few simple annotations that require only modest implementation effort; in return, performance increases substantially.
Sprache
Englisch
Identifikatoren
ISSN: 1544-3566
eISSN: 1544-3973
DOI: 10.1145/2532642
Titel-ID: cdi_crossref_primary_10_1145_2532642

Weiterführende Literatur

Empfehlungen zum selben Thema automatisch vorgeschlagen von bX