The overall latency of the OnixS::CME::iLink3::Session::send method includes all latencies of all operations inside this method. The following sequence of operations are performed when the OnixS::CME::iLink3::Session::send method is called:
send
function. In practice, the latency of the system send
function can be about 5-10 microseconds what depends on the size of send data, network workload, network software/hardware, etc. For example, you can significantly decrease this latency by using Solarflare network cards and the user-space "Onload" TCP stack implementation.send
function fails, then the unsent message is stored in the sending queue for the subsequent sending by the sending thread.The latency of OnixS::CME::iLink3::Session::send method (as any other function) depends on the frequency with which you call it. When you call a function infrequently, the function path and associated data structures will not be in a processor cache, and this can increase the function latency. However, if you call a function frequently, then you can avoid cache misses and keep the function path fast. For this purpose, there is the OnixS::CME::iLink3::Session::warmUp method, please see Warmup.