Hi Folks,

I'd like to solicit some ideas regarding $SUBJECT.

I'm thinking we could take an approach similar to what is done on the C++ 
broker tests now.  That is we should develop a set of "native" send and receive 
programs that can be used to profile various performance characteristics 
(msgs/sec with varying size, header content encode/decode etc).  By "native" I 
mean implementations in Java and C.

I've hacked our C "send" and "recv" examples to provide a rough swag a 
measuring msgs/sec performance.  I use these to double check that any changes I 
make to the proton C codebase do not have an unexpected impact on performance.  
This really belongs somewhere in our source tree, but for now you can grab the 
source here:  https://github.com/kgiusti/proton-tools.git

We do something similar for the QPID broker - simple native clients (qpid-send, 
qpid-receive) that do the performance sensitive message generation/consumption. 
 We've written python scripts that drive these clients for various test cases.

If we follow that approach, not only could we create a canned set of basic 
benchmarks that we could distribute, but we could also build inter-opt tests by 
running one native client against the other. E.g. C sender vs Java receiver.  
That could be a useful addition to the current "unit" test framework - I don't 
believe we do any canned interopt testing yet.

Thoughts?

-K

Reply via email to