Add timing for socket related operations


Currently FIX8 provides timing for encode/decode FIX messages. It would be great to have similar feature for time difference between TCP message reaches NIC and it gets to FIX8 processing, between FIX8 serialized FIX message and it goes out of NIC. Having that time diffs FIX8 will show full time it takes for the data to be read from socket, processed, send back a response. This time is often a subject of optimization in low latency systems.


Ubuntu 13.10 x64 gcc4.8


David Dight
January 11, 2014, 1:01 AM

Did you look at this socket implementation ? Looks pretty good.

Sergey Sedreev
January 11, 2014, 12:14 PM

Very nice socket implementation. I think it could be used instead of poco one.
The issues I found:

  • no SSL support. SLL can be added to the library as it is in poco or boost.

  • no Windows support at all. Windows layer has to be developed from 0.

BTW, why don't we try to use boost::asio just boost::socket? It has all the required features.
Or, build our own socket layer, like in those lib. It's not much work (excluding SSL) and I do have a sample to copy from (for Linux & Windows)?

PS. I could do that, but I'm still busy now - my production experienced some issues. Something happened in FX market during last month...

David Dight
January 13, 2014, 1:36 AM

The main reason I suggested this was that it does support exposing the lower level socket read/write so we could use the scatter/gather readv/writev which we worked out we needed.

I am sure the boost::socket is fine but I would rather not add another library dependency. When we move to C+11/C+1y most of what we want will be in the std library anyway.

Sergey Sedreev
January 13, 2014, 11:22 AM

Still we'll have to implement SSL & Windows ourselves.


Sergey Sedreev


Sergey Sedreev







Fix versions

Affects versions