Dynamically typed language implementations often use more memory and execute slower than their statically typed cousins, in part because operations on collections of elements are unoptimised. This paper describes storage strategies, which dynamically optimise collections whose elements are instances of the same primitive type. We implement storage strategies in the PyPy virtual machine, giving a performance increase of 18 % on wide-ranging benchmarks of real Python programs. We show that storage strategies are simple to imple-ment, needing only 1500LoC in PyPy, and have applicability to a wide range of virtual machines. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—run-time environments, code gen-eration, incr...
Abstract: The Python programming language supports object-oriented programming using a simple and el...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
In this paper we present a new program analysis method which we call Storage Use Analysis. This anal...
As software becomes more complex and the costs of developing and maintaining code increase, dynamic ...
<p>Repeatable experiment for the paper "Storage strategies for collections in dynamically typed lang...
Motivated by high development costs, production compilers and virtual machines, often support more t...
We present and evaluate a simple, yet efficient dynamic optimization technique that increases memory...
An interpreter for a virtual stack machine can spend a significant part of its execution time fetchi...
The binding of a program to a particular property or attribute is the choice of such property from a...
Dynamic languages enable rapid prototyping, while statically typed languages offer early error-detec...
Scientific applications are ideal candidates for the “heterogeneous computing” paradigm, in which pa...
Compilers for statically typed languages such as C/C++ and Java use the types from the program to ge...
We address the problem of implementing data structures resilient to memory faults, which may arbitra...
Today’s hardware is increasingly parallel, and modern programming languages must thus allow a progr...
This paper proposes a memory scheme based on abstraction for evolutionary algorithms to address dyna...
Abstract: The Python programming language supports object-oriented programming using a simple and el...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
In this paper we present a new program analysis method which we call Storage Use Analysis. This anal...
As software becomes more complex and the costs of developing and maintaining code increase, dynamic ...
<p>Repeatable experiment for the paper "Storage strategies for collections in dynamically typed lang...
Motivated by high development costs, production compilers and virtual machines, often support more t...
We present and evaluate a simple, yet efficient dynamic optimization technique that increases memory...
An interpreter for a virtual stack machine can spend a significant part of its execution time fetchi...
The binding of a program to a particular property or attribute is the choice of such property from a...
Dynamic languages enable rapid prototyping, while statically typed languages offer early error-detec...
Scientific applications are ideal candidates for the “heterogeneous computing” paradigm, in which pa...
Compilers for statically typed languages such as C/C++ and Java use the types from the program to ge...
We address the problem of implementing data structures resilient to memory faults, which may arbitra...
Today’s hardware is increasingly parallel, and modern programming languages must thus allow a progr...
This paper proposes a memory scheme based on abstraction for evolutionary algorithms to address dyna...
Abstract: The Python programming language supports object-oriented programming using a simple and el...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
In this paper we present a new program analysis method which we call Storage Use Analysis. This anal...