On Friday 17 September 2010 14:22:43 Patrone, Dennis S. wrote: > Are you buffering your naïve streams? I not sure if RMI buffers internally, > but I suspect it does. Depending on the size of the objects you are > serializing, buffering could make a big difference.
I tried putting BufferedInput/OutputStreams around the socket streams, but this does not seem to make a difference. Would it be necessary to tweak the socket receive and send buffer sizes? Thanks, Silas > > -----Original Message----- > From: Tom Hobbs [mailto:tvho...@googlemail.com] > Sent: Friday, September 17, 2010 7:51 AM > To: river-user@incubator.apache.org > Subject: Re: Jini RMI vs TCP throughput > > Hi Silas, > > A brief look on the web throws a couple of links which suggest that RMI > should be *slower* that a Socket implementation. > > See; http://java.sun.com/developer/technicalArticles/ALT/sockets/ > > I would suggest that the problem lies with your "(naive) socket > implementation". As to what the problem could be, I'm afraid that I'm not > an expert in that area - especially without seeing any code. > > My personal approach might include; > - Decide that my RMI approach was fast enough and leave it alone > - Use something like Wireshark and test both approaches to see if it's the > transmission or the de/serialisation which is taking the time > > Have you considered re-asking this question on something like Stack > Overflow? > > Sorry I can't be more help. > > Tom > > On Fri, Sep 17, 2010 at 12:28 PM, Silas De Munck <silas.demu...@ua.ac.be>wrote: > > Hello, > > > > In the context of a distributed discrete event simulation, I need to be > > able > > to send objects at a high rate between program instances on different > > hosts. > > Initially I implemented this using remote calls to an object instance > > living > > on the other side. This performs fairly well, but because essentially I > > only > > need a one-way stream-connection with asynchronous sending, I thought > > using the RMI mechanism for this was not the best solution. Therefore I > > added a TCP > > implementation using Sockets and ObjectStreams. > > > > Now comparing the RMI and the socket implementation, the results are > > somewhat > > strange. I expected the sockets to perform better because of the reduced > > overhead, but this isn't the case. My (naive) socket implementation only > > reaches about 25% of the througput rate of the RMI implementation. > > > > Does RMI use a different (faster) serialization implementation, compared > > to the > > serialization used with ObjectInput/Output-stream? > > Are there any other differences that could explain the performance > > difference? > > > > Any pointers on where to start investigate this issue would be very much > > appreciated. > > > > Regards, > > > > Silas > > > > > > > > > > -- > > > > Silas De Munck > > PhD Student > > > > Computational Modeling and Programming (COMP) > > University of Antwerp > > Middelheimlaan 1 > > 2020 Antwerpen, Belgium > > G2.07, Department of Computer Science and Mathematics > > > > e-mail: silas.demu...@ua.ac.be -- Silas De Munck PhD Student Computational Modeling and Programming (COMP) University of Antwerp Middelheimlaan 1 2020 Antwerpen, Belgium G2.07, Department of Computer Science and Mathematics e-mail: silas.demu...@ua.ac.be