On 21/10/06, Alan Conway <[EMAIL PROTECTED]> wrote:

Rumor has it that someone at JPM found the topictest faster in Java than
C++ on a multi-processor machine. I've been theorizing a contention
problem in the C++ code. However on an 8-way box I found the all-C++
topic test to be about 6% faster than Java broker with C++ clients and
56% faster than all-Java.

Yes, the last time I compared the performance, which was several weeks
ago now, with a single consumer the C++ and Java brokers were roughly
the same on that test but with 10 consumers the C++ broker had half
the throughput of the Java broker. With the C++ clients and the Java
broker it was about 5-10% faster than Java clients.

Attached are the results, test details and machine specs. Can you
compare the setups? Possibly it would be worthwhile to reconfirm this
result - maybe C++ got faster and/or Java got slower...

Do you have just one machine? Our test used two machines, each four
way dual core opterons connected with Gb ethernet.

Looking at the numbers I am surprised how much worse the numbers are
on your machine. On our machine I was seeing about 700ms average with
the Java broker (compared with 3500 on your machine). I had not
realised that the opteron was so much better than the Xeon - and your
Xeon has a higher clock speed than our opterons. Of course it could be
because we were running the clients on a separate machine.

We have always found on the Sun JVM that the first iteration takes an
order of magnitude longer than the others - typically 6 seconds - then
it drops to 1.1 seconds on the next iteration before settling down
under a second. The BEA JRockit JVM does not exhibit this behaviour.
We found that JDK 1.6 was quite a bit faster than 1.5 and when testing
I was using 1.6, but even so it was only about 20% so even 1.5 on my
test would have outperformed the C++ broker.

We also never found any large spikes when testing - perhaps you could
run with verbosegc to check whether it is a GC issue. I would also
recommend running with the concurrent collector (CMS) to minimise
pauses.

We have not looked at CPU usage so I can't really comment on that.

Martin has been running the topic test recently to check that his
changes to improve performance in the IBM performance tests have not
had any side effects, so we know that the Java broker has not slowed
down recently (in that test at least).

I will update and rebuild the C++ broker and let you know what the
results are like. We are running RHEL 4, with whatever version of gcc
that comes with.

We will also try running everything on the same machine.

RG

Reply via email to