Method Call Acceleration in Embedded Java Virtual Machines
Object oriented languages, in particular Java, use a frequent dynamic dispatch mechanism to search for the definition of an invoked method. A method could be defined in more than one class. The search for the appropriate method definition is performed dynamically. This induces an execution time overhead that is significant. Many static and dynamic techniques have been proposed to minimize the cost of such an overhead. Generally, these techniques are not adequate for embedded Java platforms with resource constraints because they require a relatively big memory space. The paper proposes a dynamic, flexible and efficient technique for accelerating method calls mechanism in embedded systems. This acceleration technique spans over 3 aspects of the method call: (1) lookup, (2) caching, and (3) synchronized methods.
Unable to display preview. Download preview PDF.
- 1.Goldberg A. and Robson D. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1985.Google Scholar
- 2.Cox B. Object-Oriented Programming, An Evolutionary Approach. Addison-Wesley, 1987.Google Scholar
- 3.Driesen K. Selector Table Indexing and Sparse Arrays. In Proceedings of OOPSLA’ 93, Washington, DC, 1993.Google Scholar
- 4.Ishizaki K., Yasue T., Kawahito M., and Komatsu H. A Study of Devirtualization Techniques for a Java Just-In-Time Compiler. In Proceedings of the ACM-SIGPLAN Conference on Object-Oriented Programmimg Systems, Languages and Applications, pages 294–310, Minneapolis, Minnesota, USA, October 2000.Google Scholar
- 5.Deutsch L.P. and Schiffman A. Efficient Implementation of the Smalltalk-80 System. In Proceedings of the 11th Symposium on Principles of Programming Languages, Salt Lake City, UT, 1984.Google Scholar
- 6.Sun MicroSystems. KVM Porting Guide. Technical report, Sun MicroSystems, California, USA, September 2001.Google Scholar
- 8.Vijay S., Laurie H., Chrislain R. and Raja V., Patrick L., Etienne G., and Charles G. Practical Virtual Method Call Resolution for Java. In Proceedings of the ACM-SIGPLAN Conference on Object-Oriented Programmimg Systems, Languages and Applications, pages 264–280, Minneapolis, Minnesota, USA, October 2000.Google Scholar
- 9.Holzle U., Chambers C., and Ungar D. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In Proceedings of ECOOP’93, 1993.Google Scholar