Removing Runtime Overhead for Optimized Object Queries
Powerful optimizations of object queries can lead to reduced asymptotic running times. However, such queries are often used in dynamic languages, and the required generality of the optimizations in handling a dynamic language can lead to significant runtime overhead as well as significantly increased code size. This paper studies combinations of optimizations for reducing this runtime overhead and code size. We describe two new optimizations — counting elimination and result set elimination, their effectiveness when combined with inlining and when using specialized data structures, and additional optimizations enabled by type analysis and alias analysis. The two new optimizations are enabled by the high-level nature of queries, even though they are difficult and not supported by general compiler optimizations. We have run a variety of benchmarks, including distributed algorithms and benchmarks from prior best systems, obtaining a speedup of up to 56% and code size reduction of up to 37%.
Tue 19 JanDisplayed time zone: Guadalajara, Mexico City, Monterrey change
16:00 - 17:40 | |||
16:00 30mTalk | Staging Generic Programming PEPM Jeremy Yallop University of Cambridge, UK DOI | ||
16:30 30mTalk | Removing Runtime Overhead for Optimized Object Queries PEPM DOI | ||
17:00 20mTalk | Toward Introducing Binding-Time Analysis to MetaOCaml PEPM Kenichi Asai Ochanomizu University DOI | ||
17:20 20mTalk | Staging beyond Terms: Prospects and Challenges PEPM Jun Inoue National Institute of Advanced Industrial Science and Technology, Japan, Oleg Kiselyov , Yukiyoshi Kameyama DOI |