extracted through static analysis of the program . Purely static branch prediction performs of course worse than the semi-static and dynamic approaches.
Our work on static path prediction bears many similarities to that of Ball and Larus , since they employ largely the same set of techniques for statically analyzing programs. Whereas they studied static predic- tion with programs in the C language, we are working with Java and could therefore introduce the (obvious) heuristic related to throwing exceptions.
To our knowledge this is the first static prediction scheme that works on the bytecode-to-bytecode level, with purely platform-independent strategies and impact assessment.
Resource control with the aid of program transformations offers an important advantage over the other approaches, because it is indepen- dent of any particular JVM and underlying operating system. It works with standard Java runtime systems and may be integrated into exist- ing server and mobile object environments, as well as into embedded systems based on Java processors.
This article has made a thorough review of the bytecode transfor- mations that are put to work in our J-RAF2 framework, including a systematic review of the origin of the associated overheads, and the optimizations designed to mitigate them. It has also presented and as- sessed an entirely new static path prediction scheme which contributes to the reduction of accounting overheads.
We have thus shown that runtime overheads can be reduced to fairly moderate levels, although at first the bytecode rewriting approach might seem overly expensive. Part of the remaining overhead may still be reduced by enhancing our intraprocedural analysis and transforma- tion schemes. But, in the light of our experiments, it seems that the possibility of making further significant progress strongly depends on the adoption of complementary interprocedural analysis tools.
This work was partly financed by the Swiss National Science Founda- tion.
The authors would like to thank Andrea Camesi, Francesco Devittori and Alex Villazo´n for their support, as well as the anonymous reviewers and the editors for many valuable comments and suggestions.