[ 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.