Thursday, June 16, 2005

.NET Remoting vs Java RMI

I found .NET Remoting very close to Java RMI in terms of concept and usage. I did more research on .NET Remoting and happened to see a benchmark comparison between .NET Remoting and Java RMI. It shows .NET Remoting is much slower than Java RMI. Here's the conclusion from the article (http://www.cs.ru.nl/~marko/onderwijs/oss/RMI_and_Remoting.pdf):

"
The most obvious and expected result of these measurements is that the middleware for both Java and .Net causes a performance decrease compared to local system calls. This is still true when disregarding the networking
cost, because there is an extra layer of functionality within middleware.

RMI had the best performance in the 3 performed tests. It is up to 20
times faster than .Net Remoting on object invocation. This was more or less expected, as Microsoft warns for a bad performance in this specific test. The result was unexpected in the method invocation and data invocation tests. On method invocation RMI outperformed Remoting by a factor 7 and on data invocation by a factor 2.
"

The tests were conducted on .NET 1.1 and Java 1.4.2. I checked .NET 2.0 Beta documentation; new IPC channel and security enhancements are highlighted, and I couldn't see any information about Remoting's performance improvement in .NET 2.0.