Lat*_*Guy 6 c++ benchmarking latency quickfix fix-protocol
我正在用C++构建一个FIX引擎,但我没有引用知道什么是一个好的性能数字.考虑到网络时间和FIX解析时间,客户端向服务器发送FIX消息的微秒时间是多少?也有人知道这个简单的FIX消息从客户端到服务器操作的当前最低可能延迟吗?
这将取决于您的FIX引擎可以将字节解析为一个FixMessage对象的速度,更重要的是取决于您的网络代码的速度。您是否也在编写网络堆栈?从外部看,编写FIX引擎看起来很简单,但是实际上这是一个复杂的任务,其中包含太多的案例和功能,您必须涵盖。您要支持重传吗?异步审核日志记录?FIX会话计时器?重复组中的重复组?您应该考虑使用开源或商业FIX引擎。
至于您应该期望的延迟,我不知道任何会低于4.5微秒的FIX引擎。这是将FixMessage对象写入ByteBuffer,通过网络将ByteBuffer传输到服务器,然后服务器从网络读取ByteBuffer并将其解析回FixMessage对象的单向总时间。如果使用下降的FIX引擎,则瓶颈将是网络I / O,而不是FIX解析。
为了给您一些数字,这是CoralFIX的基准,它是用Java编写的FIX引擎。如果可以,请告诉我:)
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]
Run Code Online (Sandbox Code Playgroud)
免责声明:我是CoralFIX的开发人员之一。
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |