DocumentCode :
2405360
Title :
Compiler optimized remote method invocation
Author :
Veldema, Ronald ; Philippsen, Michael
Author_Institution :
Comput. Sci. Dept., Elargen-Nuremberg Univ., Erlangen, Germany
fYear :
2003
fDate :
1-4 Dec. 2003
Firstpage :
127
Lastpage :
136
Abstract :
We further increase the efficiency of Java RMI programs. Where other optimizing re-implementations of RMI use pre-processors to create stubs and skeletons and to create class specific serializers and deserializers, this paper demonstrates that with transformations based on compile time analysis, an additional 18% performance gain can be achieved over class specific serializers alone for a simple scientific application. A novel and RMI-specific version of static heap analysis is used to derive information about objects that are passed as arguments of remote method invocations. This knowledge of objects and their interrelations is used for three optimizations. First, dynamic introspection and/or (recursive) dynamic invocations of object specific serializers is slow. With knowledge from our heap analysis, the marshaling of graphs of argument objects can be inlined at the call site. Hence, many method table lookups and skeleton indirections of previous approaches can be avoided and less protocol information is sent over the network. Secondly, because object graphs may be passed as RMI arguments, cyclic references need to be detected. With our heap analysis, we can detect if there is no potential for cycles and hence, cycle detection code can be left out of the serialization and marshaling codes. Finally, object arguments to remote methods cause object creation and garbage collection. Heap analysis and an RMI-specific version of escape analysis allows the reuse of object graphs created in earlier remote invocations.
Keywords :
Java; optimising compilers; remote procedure calls; Java RMI program; RMI argument; RMI-specific version; class specific deserializers; class specific serializers; compile time analysis; compiler optimized remote method invocation; cycle detection code; cyclic references; dynamic introspection; escape analysis; garbage collection; marshaling codes; object argument; object creation; object graphs; object specific serializers; preprocessors; protocol; recursive dynamic invocations; skeleton indirections; static heap analysis; table lookups; Computer science; Information analysis; Java; Object detection; Optimizing compilers; Performance analysis; Performance gain; Protocols; Remote procedure calls; Skeleton; Table lookup;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Cluster Computing, 2003. Proceedings. 2003 IEEE International Conference on
Print_ISBN :
0-7695-2066-9
Type :
conf
DOI :
10.1109/CLUSTR.2003.1253308
Filename :
1253308
Link To Document :
بازگشت