Fri 30 Oct 2015 13:52 - 14:15 at Grand Station 2 - 12. Performance Chair(s): Tiark Rompf

Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters to make just-in-time compilation language-independent. They promise that programs executing on simple interpreters can reach performance of the same order of magnitude as if they would be executed on state-of-the-art virtual machines with highly optimizing just-in-time compilers built for a specific language. Tracing and partial evaluation approach this meta-compilation from two ends of a spectrum, resulting in different sets of tradeoffs. This study investigates both approaches in the context of self-optimizing interpreters, a technique for building fast abstract-syntax-tree interpreters. Based on RPython for tracing and Truffle for partial evaluation, we assess the two approaches by comparing the impact of various optimizations on the performance of an interpreter for SOM, an object-oriented dynamically-typed language. The goal is to determine whether either approach yields clear performance or engineering benefits. We find that tracing and partial evaluation both reach roughly the same level of performance. SOM based on meta-tracing is on average 3x slower than Java, while SOM based on partial evaluation is on average 2.3x slower than Java. With respect to the engineering, tracing has however significant benefits, because it requires language implementers to apply fewer optimizations to reach the same level of performance.

Fri 30 Oct

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 15:00
12. PerformanceOOPSLA at Grand Station 2
Chair(s): Tiark Rompf Purdue & Oracle Labs
13:30
22m
Talk
Automating Ad-hoc Data Representation TransformationsOOPSLA Artifact
OOPSLA
Vlad Ureche EPFL, Switzerland, Aggelos Biboudis University of Athens, Yannis Smaragdakis University of Athens, Martin Odersky EPFL, Switzerland
Pre-print Media Attached
13:52
22m
Talk
Tracing vs. Partial Evaluation: Comparing Meta-compilation Approaches for Self-Optimizing InterpretersOOPSLA Artifact
OOPSLA
Stefan Marr INRIA, France, Stéphane Ducasse INRIA, France
Link to publication Media Attached
14:15
22m
Talk
Effectively Mapping Linguistic Abstractions for Message-Passing Concurrency to Threads on the Java Virtual Machine
OOPSLA
Ganesha Upadhyaya Iowa State University, USA, Hridesh Rajan Iowa State University, USA
DOI Pre-print Media Attached
14:37
22m
Talk
Partial Evaluation of Machine Code
OOPSLA
Venkatesh Srinivasan University of Wisconsin-Madison, USA, Thomas Reps University of Wisconsin - Madison and Grammatech Inc.
DOI Media Attached