[ resend :  I am attaching only 1 image here, so hopefully the apache 
mail gadget will not become upset.  Next one in next email. ]

Attached, please find two cool pictures of the valgrind/callgrind data
I got with a test run of the psend and precv clients I mentioned before.

( Sorry, I keep saying 'clients'.  These are pure Peer-to-Peer. )
( Hey -- if we ever sell this technology to maritime transport companies,
could we call it "Pier-to-Pier" ? )

This was from a run of 100,000 messages, using credit strategy of
200, 100, 100.
i.e. start at 200, every time you get down to 100, add 100.

That point is where I seem to find the best performance on my
system: 123,500 messages per second received.  ( i.e. 247,000
transfers per second ) using about 180% CPU ( i.e. 90% each of
2 processors. )

By the way, I actually got repeatably better performance (maybe
1.5% better  (which resulted in the 123,500 number)) by using processors
1 and 3 on my laptop, rather than 1 and 2.   Looking at /proc/cpuinfo,
I see that processors 1 and 3 have different core IDs.  OK, whatever.
( And it's an Intel system... )

I think there are no shockers here:
  psend uses its time in pn_post_transfer_frame  (44%)
  precv uses its time in pn_dispatch_frame       (67%)

The code is at https://github.com/mick-goulish/proton_c_clients.git

I will put all this performance info in there too, shortly.

Reply via email to