Poor performance using RMI-proxies with Swing components
Posted
by Patrick
on Stack Overflow
See other posts from Stack Overflow
or by Patrick
Published on 2010-05-18T00:37:30Z
Indexed on
2010/05/18
0:50 UTC
Read the original article
Hit count: 289
I'm having huge performance issues when I add RMI proxy references to a Java Swing JList-component.
I'm retrieving a list of user Profile
s with RMI from a server. The retrieval itself takes just a second or so, so that's acceptable under the circumstances. However, when I try to add these proxies to a JList
, with the help of a custom ListModel
and a CellRenderer
, it takes between 30-60 seconds to add about 180 objects. Since it is a list of users' names, it's preferrable to present them alphabetically.
The biggest performance hit is when I sort the elements as they get added to the ListModel. Since the list will always be sorted, I opted to use the built-in Collections.binarySearch()
to find the correct position for the next element to be added, and the comparator uses two methods that are defined by the Profile
interface, namely getFirstName()
and getLastName()
.
Is there any way to speed this process up, or am I simply implementing it the wrong way? Or is this a "feature" of RMI? I'd really love to be able to cache some of the data of the remote objects locally, to minimize the remote method calls.
© Stack Overflow or respective owner