[Quickfix-developers] QF raw throughput measurements
Brought to you by:
orenmnero
From: Caleb E. <cal...@gm...> - 2004-09-14 15:58:53
|
I decided to do a small test of optimal QuickFIX throughput, just to try and gauge the theoretical upper bound that one can expect to get out of QF as an engine. My test involved a modified version of the "executor" example C++ application which accepts both market and limit orders, and responds to each NewOrderSingle with two ExecutionReports (ack and fill), and a simple sender application which just reads orders from a flat file (format should be lines like "B 100 XYZ" or "S 1000 IBM 25") and sends them to the executor. Both the executor and sender are configured to use the MemoryStoreFactory for message persistence and I have eliminated all output other than handling of exceptions and printing of admin msgs. Here are my results, using an input file of 1972 orders with most of the Russell 2000 components: Hardware: 2 blades in an IBM BladeCenter, each w/two Xeon 3.2 GHz CPUs Operating Sysrtem: RedHat AS3.0_U1 Compiler: GNU g++ 3.3.2 -O2 -g -DHAVE_FTIME Network: 1 Gbit switched Ethernet (I think) Sender and Executor on Different Blades: Sent 1972 messages from 20040914-15:51:31.468 to 20040914-15:51:31.694 = 0.226s (8725.66 msgs/sec) Rcvd 3944 messages from 20040914-15:51:31.469 to 20040914-15:51:32.575 = 1.106s (3566 msgs/sec) Sender and Executor on Same Blade: Sent 1972 messages from 20040914-15:54:14.736 to 20040914-15:54:14.924 = 0.188s (10489.4 msgs/sec) Rcvd 3944 messages from 20040914-15:54:14.737 to 20040914-15:54:15.709 = 0.972s (4057.61 msgs/sec) Attached is the source code for the sending application. -- Caleb Epstein cal...@gm... |