Sun JDK 1.5.0, interpreted: Wrapper-Wrapper and SPP
Sun JDK 1.5.0, client: Wrapper- Simple and SPP
Sun JDK 1.5.0, server: Wrapper- Simple and SPP
IBM 1.4.2, default: Wrapper- Wrapper (with fixed argument positions) and SPP
Figure 13. Per-platform lowest overheads with CPU accounting.
− For IBM JDK 1.4.2, default mode: SPP on top of Wrapper rewrit- ing for JVM 98, Wrapper rewriting (with code duplication) for JDK, and fixed ThreadCPUAccount parameter position 2 both for virtual and static methods.
The overheads corresponding to these optimal settings are detailed in Figure 13.
7.2. Accuracy of Accounting
The aggressive approximation was designed primarily for determining a lower bound on the accounting overhead, i.e. a limit we should try to reach in our search for new optimization schemes targeted at Step 3. The aggressive approximation incurs an obvious loss of accounting precision, that remains to be evaluated. On the other hand, all the other optimizations presented here are designed to be as accurate as possible, with the compromise that exceptions thrown at runtime may distort the result, as described in the following.
In our approach, we always update the consumption counter with the statically computed number of bytecodes at the beginning of each accounting block. Exceptions at runtime may however occur at arbi- trary instructions within the accounting block, causing the remaining