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
