Thanks. Emmanuel,

I heard people transfer serialized object among different VMs. However, I
believed serialize really takes IO, right? I don't know if it is suitable
for my case. (thousands of message/sec)Furtheremore, in my project, my java
server has to talk to C++ server.

On 8/22/07, Emmanuel Lecharny <[EMAIL PROTECTED]> wrote:
>
> Even in C/C++, when you want to stream data, you have to do your
> homework : serialize the structure. There is no easy and simple way to
> flush a pointer, unless you just want to flush the address !
>
> So basically, I really see no difference between C/C++ and JAVA when
> it comes to serialize data and send them through a network, using a
> protocol. This is the reason why some weird people are defining
> protocols to transfert data...
>
> If you are using Java, you have simple ways to serialize data, by
> implementing the serializable interface : your objects will be
> automatically serialized, using introspection (something you can't do
> in C/C++). This won't be the fastest way to serialize data, but at the
> end, it's order of magnitude faster than the timeit takes to transfer
> data through the network anyways !
>
> Hope it helps.
>
> On 8/21/07, Jeroen Brattinga <[EMAIL PROTECTED]> wrote:
> >
> >  Well, I just use the (Mina) ByteBuffer (see
> >
> http://mina.apache.org/report/1.1/apidocs/org/apache/mina/common/ByteBuffer.html
> )
> > methods to get each field (e.g. getUnsignedInt, getString, getChar). I
> have
> > one class that does the basic unpacking (header, CRC, payload size
> etc.),
> > and some more specific classes that worry about the payload. I didn't
> find
> > it cumbersome, although a struct would have been easier.
> >
> >  But now that it's implemented, I only deal with nice and easy message
> > objects that contain the processed data (using the
> > DemuxingProtocolCodecFactory).
> >
> >  Could you give a more detailed specification of one of your packets? It
> > would give us some more insight into the problem.
> >
> >
> >  Jeroen Brattinga
> >
> >
> >
> >  mat wrote:
> >  The reason why I raised this thread is: recently I am really bothered
> with
> > following issue.
> >
> > My mina component has to connect to a legacy server written in C++. C++
> > server just simply sends out the struct as a message. I think for a C++
> > program it is just simple return the struct pointer and use each field.
> > However, to my java program that is a disaster(also really lower the
> > performance). I have to use all the system.arraycopy to make up each
> > field.(Actually it causes OOM). I don't know if you guys ever faced this
> > kind of problem. How to solve it?
> >
> >
> > On 8/11/07, Emmanuel Lecharny <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Hi guys,
> >
> > when guessing relative performances of Java/C++ on a network
> > environment, please keep in mind that data processing will be
> > processed orders or magnitude faster than simple network handling by
> > the underlying layer. Thinking that Java is slower than C++ to handle
> > messages on a network based application because it does not have
> > pointers is out of base.
> >
> > FYI, I have tested our LDAP server on my laptop, sending Search
> > requests through MINA (Apache Directory Server is based on MINA, 1.0.3
> > version), and I got something like 5000 req/s (a request is around
> > 1kb), assuming that almost all the time is spent internally to the
> > server itself, not in the MINA layer. Btw, LDAP messages are binary,
> > but that does not mean it's easier to decode them in C/C++ than in
> > Java (I would say that the complexity is exactly the same for both
> > languages).
> >
> > I don't want to start a flame war, but I encourage anyone who want to
> > compare Java and C++ to compare things that are comparable, and not
> > blind guess what can be slow or fast in both languages.
> >
> > My 2cts
> > Emmanuel
> >
> > On 8/11/07, mat <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Actually the windows IOCP server is written in C++ and it is running on
> >
> >  a pc
> >
> >
> >  server. I believe the reasons why Java can't reach that performance
> > sometimes due to lack of structure(pointer). I find it is really
> >
> >  cumbersome
> >
> >
> >  job to decode a binary message in Java. I don't know if you guys have
> >
> >  better
> >
> >
> >  solution to decode the binary format and manipulate the each field in
> >
> >  the
> >
> >
> >  binary message.
> >
> > On 8/11/07, Michael Grundvig <[EMAIL PROTECTED]> wrote:
> >
> >
> >  I don't have the exact numbers but I know on a big Linux box (8
> > processors,
> > 8 gb ram) with a switched gigabit backbone we have seen greater then
> > 45,000 - 50,000 messages per second sustained. Ultimately the problem
> > becomes a matter of garbage collector churn rather then IO overhead.
> >
> >  On
> >
> >
> >
> >  Windows machines we could get only to a fraction of that. We believe
> >
> >  the
> >
> >
> >
> >  underlying I/O differences between Windows and *nix become really
> >
> >  obvious
> >
> >
> >
> >  when you get to higher message counts.
> >
> > Michael
> >
> > ----- Original Message -----
> > From: "mat" <[EMAIL PROTECTED]>
> > To: "dev" <[email protected]>
> > Sent: Friday, August 10, 2007 11:24 AM
> > Subject: Mina throughput
> >
> >
> >
> >
> >  Does anyone have the throughput test by raw socket communication
> > (keep-alive
> > mode)? My colleague wrote a windows IOCP server whose throughput
> >
> >  could
> >
> >
> >
> >
> >  reach
> > 1.8m/sec. (5000message/sec in intranet).
> >
> >
> >
> >  --
> > Regards,
> > Cordialement,
> > Emmanuel Lécharny
> > www.iktek.com
> >
> >
> >
> >
>
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>

Reply via email to