Loading...
Please wait, while we are loading the content...
Similar Documents
Optimizing dynamic dispatch with fine-grained state tracking
| Content Provider | ACM Digital Library |
|---|---|
| Author | Zakirov, Salikh S. Chiba, Shigeru Shibayama, Etsuya |
| Abstract | Dynamic mixin is a construct available in Ruby and other dynamic languages. It can be used as a base to implement a range of programming paradigms, such as dynamic aspect-oriented programming and context-oriented programming. However, the performance characteristics of current implementation of dynamic mixin in Ruby leaves much to be desired under condition of frequent dynamic mixin operations, global method cache and inline cache misses incur significant overhead. In this work we implemented fine-grained state tracking for CRuby 1. and were able to improve performance by more than six times on the microbenchmark exercising extreme case flowing 4 times to global method cache clearing, 28% to fine-grained state tracking and further 12% to inline cache miss elimination by caching alternating states. We demonstrated a small application using dynamic mixins that gets 48% improvement in performance from our techniques. We also implemented in C a more general delegation object models and proposed an algorithm of thread-local caching, which allows to reduce inline cache misses while permitting thread-local delegation changes. |
| Starting Page | 15 |
| Ending Page | 26 |
| Page Count | 12 |
| File Format | |
| ISBN | 9781450304054 |
| DOI | 10.1145/1869631.1869634 |
| Language | English |
| Publisher | Association for Computing Machinery (ACM) |
| Publisher Date | 2010-10-18 |
| Publisher Place | New York |
| Access Restriction | Subscribed |
| Subject Keyword | Polymorphic inline caching Inline caching Dynamic method dispatch |
| Content Type | Text |
| Resource Type | Article |