Loading...
Please wait, while we are loading the content...
Similar Documents
Towards reducing the need for algorithmic primitives in dynamic language VMs through a tracing JIT
Content Provider | ACM Digital Library |
---|---|
Author | Wassermann, Lars Felgentreff, Tim Pape, Tobias Hirschfeld, Robert Bolz, Carl Friedrich |
Abstract | When implementing virtual machines, besides the interpreter and optimization facilities, we have to include a set of primitive functions that the client language can use. Some of these implement truly primitive behavior, such as arithmetic operations. Other primitive functions, which we call algorithmic primitives, are expressible in the client language, but are implemented in the vm to improve performance. However, having many primitives in the vm makes it harder to maintain them, or re-use them in alternative vm implementations for the same language. With the advent of efficient tracing just-in-time compilers we believe the need for algorithmic primitives to be much diminished, allowing more of them to be implemented in the client language. In this work, we investigate the trade-offs when creating primitives, and in particular how large a difference remains between primitive and client function run times in vms with tracing just-in-time compiler. To that end, we extended the RSqueak/VM, a vm for Squeak/Smalltalk written in RPython. We compare primitive implementations in C, RPython, and Smalltalk, showing that due to the tracing JIT the performance gap can be significantly reduced. |
Starting Page | 1 |
Ending Page | 10 |
Page Count | 10 |
File Format | |
ISBN | 9781450336574 |
DOI | 10.1145/2843915.2843924 |
Language | English |
Publisher | Association for Computing Machinery (ACM) |
Publisher Date | 2015-07-04 |
Publisher Place | New York |
Access Restriction | Subscribed |
Subject Keyword | Tracing jit Squeak/smalltalk Algorithmic primitives |
Content Type | Text |
Resource Type | Article |