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