1-2hit |
Shinji TANAKA Tetsuyasu YAMADA Satoshi SHIRAISHI
The sizes of recent Java-based server-side applications, like J2EE containers, have been increasing continuously. Past techniques for improving the performance of Java applications have targeted relatively small applications. Moreover, when the methods of these small target applications are invoked, they are not usually distributed over the entire memory space. As a result, these techniques cannot be applied efficiently to improve the performance of current large applications. We propose a dynamic code repositioning approach to improve the hit rates of instruction caches and translation look-aside buffers. Profiles of method invocations are collected when the application performs with its heaviest processor load, and the code is repositioned based on these profiles. We also discuss a method-splitting technique to significantly reduce the sizes of methods. Our evaluation of a prototype implementing these techniques indicated 5% improvement in the throughput of the application.
Tetsuyasu YAMADA Hiroshi SUNAGA Shinji TANAKA Satoshi SHIRAISHI Keiichi KOYANAGI
This paper proposes a Java online plug-in mechanism that can be used to modify any part in a system file coded in Java, even while the part is running, without service interruption. The Java-related plug-in capabilities are devised by using the plug-in functional elements offered by the existing C++ online plug-in that we proposed. In particular, measures on how to deal with the use of Just In Time compilation and inline expansion are considered. New linkage and file-back up techniques are proposed for this purpose. Case studies reveal its wide applicability and the degree of memory area saving effects. Evaluation proves this mechanism does not affect the performance of ordinary service processing. It is expected to be used in practice for Java-based service processing such as VoIP and Instant Messaging.