c++ - What are the lowest possible latencies for a FIX engine to send a FIX message from client to server? -
i building fix engine in c++ don't have reference know considered performance number. taking account network time , fix parsing time, time in microseconds client send fix message server? know current lowest possible latencies expected simple fix-message-from-client-to-server operation?
that depend on how fast fix engine can parse bytes fixmessage
object , more importantly on how fast network code is. writing network stack too? writing fix engine looks simple outside complex task many corner cases , features have cover. going support retransmission? asynchronous audit-logging? fix session timers? repeating groups inside repeating groups? should consider using open-source or commercial fix engine.
as latencies should expect, unaware of fix engine can go below 4.5 microseconds. that's one-way total time write fixmessage
object bytebuffer
, transfer bytebuffer on network server, server reads bytebuffer network , parses fixmessage
object. if using descent fix engine, bottleneck network i/o, not fix parsing.
to give numbers, here benchmark coralfix, fix engine written in java. if can go below that, please let me know :)
messages: 1,800,000 (one-way) avg time: 4.774 micros min time: 4.535 micros max time: 69.516 micros 75% = [avg: 4.712 micros, max: 4.774 micros] 90% = [avg: 4.726 micros, max: 4.825 micros] 99% = [avg: 4.761 micros, max: 5.46 micros] 99.9% = [avg: 4.769 micros, max: 7.07 micros] 99.99% = [avg: 4.772 micros, max: 9.481 micros] 99.999% = [avg: 4.773 micros, max: 24.017 micros]
disclaimer: 1 of developers of coralfix.
Comments
Post a Comment