Assessing primitives performance on multi-stage execution

Sophie Kaleba 1 Clément Béra 1 Stéphane Ducasse 2
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
2 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Abstract : Virtual machines, besides the interpreter and just-in-time compiler optimization facilities, also include a set of primitive operations that the client language can use. Some of these are essential and cannot be performed in any other way. Others are optional: they can be expressed in the client language but are often implemented in the virtual machine to improve performance when the just-in-time compiler is unable to do so (start-up performance, speculative optimizations not implemented or not mature enough, etc.). In a hybrid runtime, where code is executed by an interpreter and a just-in-time compiler, the implementor can choose to implement optional primitives in the client language , in the virtual machine implementation language (typically C or C++), or on top of the just-in-time compiler back-end. This raises the question of the maintenance and performance trade-offs of the different alternatives. As a case study, we implemented the String comparison optional primitive in each case. This paper describes the different implementations , discusses the maintenance cost of each of them and evaluates for different string sizes the execution time in Cog, a Smalltalk virtual machine.
Document type :
Conference papers
Liste complète des métadonnées

https://hal.archives-ouvertes.fr/hal-01874946
Contributor : Sophie Kaleba <>
Submitted on : Saturday, September 15, 2018 - 11:26:26 AM
Last modification on : Friday, March 22, 2019 - 1:36:17 AM
Document(s) archivé(s) le : Sunday, December 16, 2018 - 12:21:08 PM

File

paper.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01874946, version 1

Citation

Sophie Kaleba, Clément Béra, Stéphane Ducasse. Assessing primitives performance on multi-stage execution. ICOOOLPS 2017 - 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, Jul 2018, Amsterdam, Netherlands. ⟨hal-01874946⟩

Share

Metrics

Record views

228

Files downloads

48