sys-tango-benchmark results

Well it seems something is terribly wrong with C++ test benchmark

I ran my test Java client against both JavaBenchmarkTarget server and TangoTest:


15s test; 64 clients;

Java server; cold start; transactionMode - Attributte; thread_pool = 200 => 199050

sys/tg_test/0/double_scalar_w => 182326


With C++ client the picture a bit different:


C++ client

15s test; 64 clients;

Java server; cold start; transactionMode - Attribute; thread_pool = 5 => 257431

Java server; cold start; transactionMode - Attribute; thread_pool = 200 => 349258

Java server; cold start; transactionMode - None; thread_pool = 200 => 354321

sys/tg_test/0/double_scalar_w => 376242


C++ a bit faster but it is far away from 1,1M ops/s as in the poster for ICALEPCS'19. I doubt if it is due to my 64 clients being on a single machine. Anyway even my simple test shows 350K not ~150K as in the poster.

Some side observations:

  1. Java client itself is a bit slow - max 200K requests. Probably due to synchronization issues in TangORB
  2. Java server transaction model does not work or at least does not work as expected - NONE has no advantage over default one (DEVICE) nor ATTRIBUTE
Yeah, I got it!

When I run TangoTest on the same physical machine where clients are launched (in docker though) it gives:


C++ client

15s test; 64 clients;

docker:localhost:10000/sys/tg_test/0/double_scalar_w => 867101


Not yet 1,1M but it is clear that C++ more optimized for local communication

OR

vice versa - Java is not optimized for local communication.

So my conclusion - Java and C++ have more or less the same performance on the server side when client and server are separated by the network. C++ outstands Java when client and server deployed on a same physical machine even in dockers
 
Register or login to create to post a reply.