Abstract
Selector code indexing is a simple and effective way of optimizing method lookups. However, it has not been considered practically applicable in Smalltalk, because the space overhead is prohibitive. We propose a new technique called “dispatch caches indexed by selector codes” (CISCO), which maintains a small number of dispatch tables indexed by a small number of selector codes. The space overhead is thus a small constant, however many classes and selectors there are in a system, while it almost maintains the runtime efficiency of selector code indexing. The simulation results show that, when carefully applied, optimization by CISCO is very promising, with cache miss ratios of less than 1.0% in real programs.
Preview
Unable to display preview. Download preview PDF.
References
Pascal Andre and Jean-Claude Royer. Optimizing Method Search with Lookup Caches and Incremental Coloring. OOPSLA '92 Conference Proceedings pp. 110–126.
Craig Chambers and David Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language. Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation pp. 146–180.
Craig Chambers, Jeffrey Dean, and David Grove. A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies. 17th International Conference on Software Engineering 1995.
Jeffrey Dean, Craig Chambers, and David Grove. Selective Specialization for Object-Oriented Languages. Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation pp. 93–102.
Jeffrey Dean, David Grove, and Craig Chambers. Optimization of Object-Oriented Programs Using Static Hierarchy Analysis. Proceeding of ECOOP '95
L. Peter Deutsch and Alan Schiffman. Efficient Implementation of the Smalltalk-80 System. Proceeding of the 11th Symposium on the Principles of Programming Languages 1984, pp. 297–302.
Karel Driesen. Selector Table Indexing & Sparse Arrays. OOPSLA '93 Conference Proceedings pp. 259–270.
Karel Driesen and Urs Hölzle. Minimizing Row Displacement Dispatch Tables. OOPSLA '95 Conference Proceedings pp. 141–155.
R. Dixon, T. McKee, P. Schweizer, and M. Vaughan. A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance. OOPSLA '89 Conference Proceedings pp. 211–214.
Patrick H. Dussud. TICLOS: An Implementation of CLOS for the Explore Family. OOPSLA '89 Conference Proceedings pp. 215–219.
Adele Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.
David Grove, Jeffrey Dean, Charles Garrett, and Craig Chambers. Profile-Guided Receiver Class Prediction. OOPSLA '95 Conference Proceedings pp. 107–122.
Urs Hölzle, Craig Chambers, and David Ungar. Optimizing Dynamically Typed Object-Oriented languages With Polymorphic Inline Caches. ECOOP '91 Conference Proceedings
Urs Hölzle, Craig Chambers, and David Ungar. Debugging Optimized Code with Dynamic Deoptimization. Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation pp. 32–43.
Urs Hölzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation pp. 146–180.
Next. Concepts: Objective-C Release 3.1. Next Computer Inc., 1993.
Ted Kaehler. Apple Research Labs Releases Prototype of “Squeak”. http://www.research.apple.com/research/proj/Learning-.Concepts/squeak/intro.html
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Onodera, T., Nakamura, H. (1997). Optimizing Smalltalk by selector code indexing can be practical. In: Akşit, M., Matsuoka, S. (eds) ECOOP'97 — Object-Oriented Programming. ECOOP 1997. Lecture Notes in Computer Science, vol 1241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053384
Download citation
DOI: https://doi.org/10.1007/BFb0053384
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63089-0
Online ISBN: 978-3-540-69127-3
eBook Packages: Springer Book Archive