users@glassfish.java.net

Serialization RMI-IIOP performance problem

From: <glassfish_at_javadesktop.org>
Date: Mon, 02 Apr 2007 16:23:17 PDT

Hi

i am currently developping a swing client / ejbs application. As some of our users have low bandwidth to our server (128kb), I did some tests on our development environment (b39 dev server on a remote linux box, XP dev workstation where the client is launched) with a bandwidth limiter tool to emulate response times.

I have no particular performance problem doing theses tests locally and remotely with full bandwith (100Mbit), however, when i limit the bandwidth to 10KB/s, the client has terrible reponses times, like 40+ seconds to load and display a list of 100 entities in a jtable.

I thought it was because my archtecture or entities relationships were not optimized, so i did a simple test with a basic entity holding with just a string and id fields, same problem. Doing these tests, It appears that RMI-IIOP adds up to 4 times more data to a single serialized entity (fetched by id in the ejb facade) transported across the wire and up to 10 times more data for a collection of entities .
These results are not as precise as i could get using a packet sniffer to see exactly what data is sent, but those are what i deducted given the response times and the size of the entity serialized the client received (using objectoutput stream).

If you are interested i can post later my tests.

This issue is really problematic as it would imply that we should redevelop our client to a web application which is not acceptable atm, and btw this is against the idea that a rich application should be more bandwidth conservative than a classic web application.

Yves
[Message sent by forum member 'ygillet' (ygillet)]

http://forums.java.net/jive/thread.jspa?messageID=210954