[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance?

Kyle Cordes wrote:
> > I haven't tested your stuff, but the performance notes seems weird.
> I've
> > done some work on a message based application using RMI (=chat), and I
> > managed to easily get a throughput of 15.000 messages per second. Your
> > throughput of only 400 seems very low. Any ideas on why?

Hi Rickard,
nice to see you here, i am using your jboss EJB server now and then,
it is an impressive piece of software.

> Rickard,
> I believe XMLBlaster formats and parses everything as XML, and the
> performance note on their web site said something about the processor
> spending most of its time in XML parsing.  From the performance page:
> "The socket connections eat up most of the cpuload, thereafter XML
> parsing is expensive. The xmlBlaster code itself only consumes very
> little of the processing time."
> I also find the 400 per second not terribly fast; I know that "native"
> sockets-based message passing systems can acheive a large multiple of
> that, and am not surprised that Java-RMI is much faster as well.

400 messages per second are 800 tcp/ip calls per second,
that is because the message is sent to xmlBlaster and from there
updated to a client again.

But you are right, it is not a lot.
I always thought that native socket would not be much faster,
but your 15.000 messages is a lot more.

I have no idea what eats up 14.200 messages when using RMI or CORBA.

I need to investigate further, doing some profiling etc.

How where the conditions with your 15.000 messages (hardware, OS etc.)?

I just tried a simple getXy() method 500 times with JBOSS and J2EE EJB

  JBOSS     does 62  requests per second
  Suns J2EE does 210 requests per second

210 messages is only a quarter of the xmlBlaster throughput (publish &
I believe all the container code in the EJB server is degrading the
performance, and the RMI call as well.

The 62 requests per seconds of JBoss is strange, my EJbean looks like:

  getXy() {
	return xy;

JBoss does allways call ejbStore() which is a Oracle UPDATE call,
i believe this consumes a lot of performance.
But why does JBOSS call ejbStore() on a simple get method?
(it is a bean managed entity bean)


Marcel Ruff
mailto:ruff at swand.lake.de