2000
DOI: 10.1145/354222.353191
|View full text |Cite
|
Sign up to set email alerts
|

A study of devirtualization techniques for a Java Just-In-Time compiler

Abstract: Many devirtualization techniques have been proposed to reduce the runtime overhead of dynamic method calls for various objectoriented languages, however, most of them are less effective or cannot be applied for Java in a straightforward manner. This is partly because Java is a statically-typed language and thus transforming a dynamic call to a static one does not make a tangible performance gain (owing to the low overhead of accessing the method table) unless it is inlined, and partly because the dynamic class… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
10
0

Year Published

2003
2003
2009
2009

Publication Types

Select...
4
2

Relationship

0
6

Authors

Journals

citations
Cited by 20 publications
(10 citation statements)
references
References 36 publications
0
10
0
Order By: Relevance
“…However, it is possible to program in a "pseudo" object oriented style, where methods are defined as virtual, but are not actually overridden in the program code. Such method call sites are prime targets for optimisation, since the target of most, if not all their calls can be calculated statically [29,17].…”
Section: Polymorphicity Of Virtual Methods Callsmentioning
confidence: 99%
See 1 more Smart Citation
“…However, it is possible to program in a "pseudo" object oriented style, where methods are defined as virtual, but are not actually overridden in the program code. Such method call sites are prime targets for optimisation, since the target of most, if not all their calls can be calculated statically [29,17].…”
Section: Polymorphicity Of Virtual Methods Callsmentioning
confidence: 99%
“…Their JIT inlines static calls to small methods, and uses class hierarchy analysis [17] to devirtualise dynamic calls. The test suite they use includes the SPEC benchmarks as well as some more GUI-based programs, and Ishizaki et al report good scope for devirtualisation across the suite, in particular for mtrt which makes extensive use of small methods.…”
Section: Related Workmentioning
confidence: 99%
“…The section discusses additional related work on the topic. Ishizaki et al [12] conducted an extensive study of dynamic devirtualization techniques for Java programs. In their experiments, size limits were put on inlined targets, and techniques using dynamic CHA were shown to inline about 46% of virtual calls (execution counts).…”
Section: Related Workmentioning
confidence: 99%
“…Ishizaki et al [12] presented a code patching technique to remove the direct overhead of all method and class tests for monomorphic call sites in the presence of dynamic class loading. Code patching uses CHA to identify monomorphic calls at compile time.…”
Section: Introductionmentioning
confidence: 99%
“…Previous work has explored inlining for whole programs (see, e.g., [4]) and for programs that use dynamic class loading (see, e.g., [9,3,1,5,12]). That work has devised analysis and transformations for devirtualisation and method inlining, shown the effectiveness of these optimisations, and argued informally for their correctness.…”
Section: Introductionmentioning
confidence: 99%