I've created a patch with some small performance optimizations on .NET message cracker to take advantage of runtime type checking instead of checking message type field and begin strings. This small optimization can generate great benefits in a long run, helping to reduce latency.
On my home computer I've observed the following results:
Before the patch # of iterations: 10.000.000
Best Case (QuickFix44.Heartbeat) - 00:00:10.9466428
Worst Case (QuickFix44.CollateralInquiryAck) - 00:00:21.3114432
After the patch # of iterations: 10.000.000
Best Case (QuickFix44.Heartbeat) - 00:00:01.2027634
Worst Case (QuickFix44.CollateralInquiryAck) - 00:00:12.3130809
Which means a performance increase of 73% on the worst case - the last if on QuickFix44.MessageCracker (CollateralInquiryAck) -, and a performance increase of 810% on the best case - the first if on QuickFix44.MessageCracker (Heartbeat).
Log in to post a comment.