Optimizing record data structures in Racket

T Pape, V Kirilichev, R Hirschfeld - Proceedings of the 31st Annual ACM …, 2016 - dl.acm.org
T Pape, V Kirilichev, R Hirschfeld
Proceedings of the 31st Annual ACM Symposium on Applied Computing, 2016dl.acm.org
Built-in data structures are a key contributor to the performance of dynamic languages.
Record data structures, or records, are one of the common advanced, but not easily
optimizable built-in data structures supported by those languages. Records may be used in
an object-oriented fashion or to implement object orientation itself. In this paper, we analyze
how records are used in different applications in the Scheme dialect Racket. Based on the
data obtained, we suggest the application of existing optimization techniques for records …
Built-in data structures are a key contributor to the performance of dynamic languages. Record data structures, or records, are one of the common advanced, but not easily optimizable built-in data structures supported by those languages. Records may be used in an object-oriented fashion or to implement object orientation itself.
In this paper, we analyze how records are used in different applications in the Scheme dialect Racket. Based on the data obtained, we suggest the application of existing optimization techniques for records and devise a new one for immutable boolean fields. Most of them can be applied to a wide range of record implementations in dynamic languages. We apply these optimizations to records in Pycket, an implementation of Racket. With one exception, microbenchmarks show a two-to ten-fold speed-up of our implementation over plain Racket.
ACM Digital Library
Showing the best result for this search. See all results