Thread: [Quickfix-developers] Performance of QuickFix/J vs QuickFix (C++)
Brought to you by:
orenmnero
|
From: Vikram V. <rer...@ya...> - 2007-01-29 08:04:27
|
Hi,
I am considering using QuickFix/J and am currently evaluating it's
performance(throughput, letency,etc.,). At this point, i would like to know
the comparative performances of QuickFix/J and QuickFix(C++). Is the java
version better compared to C++ version?
And, are there any benchmark perfromance test results(for throughput,
latency) for QuickFix/J or QuickFix ?
Thanks and Regards,
Vikram
--
View this message in context: http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8685486
Sent from the QuickFIX - Dev mailing list archive at Nabble.com.
|
|
From: Vikram V. <rer...@ya...> - 2007-02-01 10:31:49
|
Hi,
I have done some performance tests for Quickfix/J 1.0.4. and got some
performance results. Please let me know whether the performance results are
acceptable, and are expected.
Started Client1 (Trader) and Client2(CounterParty) on the same machine
(Architecture : i386 / Memory : 4 GB ).
1. Throughput testing
Description : Placed 100,000 orders from Trader and got all the orders
filled by the Counterparty (i.e. received all execution reports). The total
time taken is noted, and the throughout is calculated(orders per second) for
100,000 orders.
Average throughput : 3600 transactions / second.
(where transaction = sending order and receiving it's execution report).
2. Ping pong mode of testing
Description : Placed 'N' orders from Trader. On receiving execution
report for all the 'N' orders, the next 'N' orders are placed and so
on...sort of BLOCKING order placement.
Latency :
On receiving the execution report for the 'N' th order, the time
difference between the current time and the PLACING TIME of that order is
calculated and this is taken as the LATENCY for an order.
Throuthput calculation:
The total time taken for 'N' orders to be filled is taken down. From
this the throughput is calculated.
Batch size = The value of 'N'.
# orders Batch size Min Latency Max Latency Avg latency Min throughput
Max throughput Avg throughput
100000 1 1 1009 504 2
1000 575
100000 2 1 1028 501 22
2000 1728
100000 5 1 1009 501 90
5000 3999
100000 10 1 1028 499 62
10000 4300
100000 100 9 1042 518 200
9090 5126
100000 1000 28 1038 529 3058
6802 5778
- Vikram
--
View this message in context: http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8746000
Sent from the QuickFIX - Dev mailing list archive at Nabble.com.
|
|
From: Robert P. <rob...@gm...> - 2007-02-05 00:19:02
|
Hi Vikram, can you provide some units here? Are these microseconds? On 2/1/07, Vikram Venkatesan <rer...@ya...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi, > I have done some performance tests for Quickfix/J 1.0.4. and got some > performance results. Please let me know whether the performance results are > acceptable, and are expected. > > Started Client1 (Trader) and Client2(CounterParty) on the same machine > (Architecture : i386 / Memory : 4 GB ). > > 1. Throughput testing > Description : Placed 100,000 orders from Trader and got all the orders > filled by the Counterparty (i.e. received all execution reports). The total > time taken is noted, and the throughout is calculated(orders per second) for > 100,000 orders. > > Average throughput : 3600 transactions / second. > (where transaction = sending order and receiving it's execution report). > > 2. Ping pong mode of testing > Description : Placed 'N' orders from Trader. On receiving execution > report for all the 'N' orders, the next 'N' orders are placed and so > on...sort of BLOCKING order placement. > Latency : > On receiving the execution report for the 'N' th order, the time > difference between the current time and the PLACING TIME of that order is > calculated and this is taken as the LATENCY for an order. > > Throuthput calculation: > The total time taken for 'N' orders to be filled is taken down. From > this the throughput is calculated. > > Batch size = The value of 'N'. > > # orders Batch size Min Latency Max Latency Avg latency Min throughput > Max throughput Avg throughput > 100000 1 1 1009 504 2 > 1000 575 > 100000 2 1 1028 501 22 > 2000 1728 > 100000 5 1 1009 501 90 > 5000 3999 > 100000 10 1 1028 499 62 > 10000 4300 > 100000 100 9 1042 518 200 > 9090 5126 > 100000 1000 28 1038 529 3058 > 6802 5778 > > > - Vikram > -- > View this message in context: http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8746000 > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Robert P. <rob...@gm...> - 2007-02-05 00:33:32
|
Also, for these number to be better interpreted, you'll need to be more specific about the number of CPUs, and settings and version of the JVM. Also, what kind of logging are you using? What platform? Otherwise it's hard to tell if you are testing QuickFIX or are seeing effects of garbage collecting and such in the JVM itself, or perhaps of File IO due to logging and persistence. The very disparate values in the results, especially latency, say to me that you are hitting system performance bottlenecks, and not really testing QuickFIX/J at this point. On 2/4/07, Robert Parrott <rob...@gm...> wrote: > Hi Vikram, can you provide some units here? Are these microseconds? > > On 2/1/07, Vikram Venkatesan <rer...@ya...> wrote: > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > > > Hi, > > I have done some performance tests for Quickfix/J 1.0.4. and got some > > performance results. Please let me know whether the performance results are > > acceptable, and are expected. > > > > Started Client1 (Trader) and Client2(CounterParty) on the same machine > > (Architecture : i386 / Memory : 4 GB ). > > > > 1. Throughput testing > > Description : Placed 100,000 orders from Trader and got all the orders > > filled by the Counterparty (i.e. received all execution reports). The total > > time taken is noted, and the throughout is calculated(orders per second) for > > 100,000 orders. > > > > Average throughput : 3600 transactions / second. > > (where transaction = sending order and receiving it's execution report). > > > > 2. Ping pong mode of testing > > Description : Placed 'N' orders from Trader. On receiving execution > > report for all the 'N' orders, the next 'N' orders are placed and so > > on...sort of BLOCKING order placement. > > Latency : > > On receiving the execution report for the 'N' th order, the time > > difference between the current time and the PLACING TIME of that order is > > calculated and this is taken as the LATENCY for an order. > > > > Throuthput calculation: > > The total time taken for 'N' orders to be filled is taken down. From > > this the throughput is calculated. > > > > Batch size = The value of 'N'. > > > > # orders Batch size Min Latency Max Latency Avg latency Min throughput > > Max throughput Avg throughput > > 100000 1 1 1009 504 2 > > 1000 575 > > 100000 2 1 1028 501 22 > > 2000 1728 > > 100000 5 1 1009 501 90 > > 5000 3999 > > 100000 10 1 1028 499 62 > > 10000 4300 > > 100000 100 9 1042 518 200 > > 9090 5126 > > 100000 1000 28 1038 529 3058 > > 6802 5778 > > > > > > - Vikram > > -- > > View this message in context: http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8746000 > > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, security? > > Get stuff done quickly with pre-integrated technology to make your job easier. > > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > Quickfix-developers mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > |
|
From: Vikram V. <rer...@ya...> - 2007-02-06 06:39:16
|
Hi Robert, The latency values were in milliseconds. and the throughput is in transactions / second. And, regarding the test environment... # of CPU's : 2 (Arch : x386) Platform : Solaris JVM : version 1.5.0_10 Logging : Using FileLogFactory... logs go to files... Thanks, Vikram robparrott wrote: > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Also, for these number to be better interpreted, you'll need to be > more specific about the number of CPUs, and settings and version of > the JVM. Also, what kind of logging are you using? What platform? > > Otherwise it's hard to tell if you are testing QuickFIX or are seeing > effects of garbage collecting and such in the JVM itself, or perhaps > of File IO due to logging and persistence. > > The very disparate values in the results, especially latency, say to > me that you are hitting system performance bottlenecks, and not really > testing QuickFIX/J at this point. > > > On 2/4/07, Robert Parrott <rob...@gm...> wrote: >> Hi Vikram, can you provide some units here? Are these microseconds? >> >> On 2/1/07, Vikram Venkatesan <rer...@ya...> wrote: >> > QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> > QuickFIX Support: http://www.quickfixengine.org/services.html >> > >> > >> > Hi, >> > I have done some performance tests for Quickfix/J 1.0.4. and got >> some >> > performance results. Please let me know whether the performance results >> are >> > acceptable, and are expected. >> > >> > Started Client1 (Trader) and Client2(CounterParty) on the same machine >> > (Architecture : i386 / Memory : 4 GB ). >> > >> > 1. Throughput testing >> > Description : Placed 100,000 orders from Trader and got all the >> orders >> > filled by the Counterparty (i.e. received all execution reports). The >> total >> > time taken is noted, and the throughout is calculated(orders per >> second) for >> > 100,000 orders. >> > >> > Average throughput : 3600 transactions / second. >> > (where transaction = sending order and receiving it's execution >> report). >> > >> > 2. Ping pong mode of testing >> > Description : Placed 'N' orders from Trader. On receiving execution >> > report for all the 'N' orders, the next 'N' orders are placed and so >> > on...sort of BLOCKING order placement. >> > Latency : >> > On receiving the execution report for the 'N' th order, the >> time >> > difference between the current time and the PLACING TIME of that order >> is >> > calculated and this is taken as the LATENCY for an order. >> > >> > Throuthput calculation: >> > The total time taken for 'N' orders to be filled is taken down. >> From >> > this the throughput is calculated. >> > >> > Batch size = The value of 'N'. >> > >> > # orders Batch size Min Latency Max Latency Avg latency Min >> throughput >> > Max throughput Avg throughput >> > 100000 1 1 1009 504 >> 2 >> > 1000 575 >> > 100000 2 1 1028 501 >> 22 >> > 2000 1728 >> > 100000 5 1 1009 501 >> 90 >> > 5000 3999 >> > 100000 10 1 1028 499 >> 62 >> > 10000 4300 >> > 100000 100 9 1042 518 >> 200 >> > 9090 5126 >> > 100000 1000 28 1038 529 >> 3058 >> > 6802 5778 >> > >> > >> > - Vikram >> > -- >> > View this message in context: >> http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8746000 >> > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. >> > >> > >> > >> ------------------------------------------------------------------------- >> > Using Tomcat but need to do more? Need to support web services, >> security? >> > Get stuff done quickly with pre-integrated technology to make your job >> easier. >> > Download IBM WebSphere Application Server v.1.0.1 based on Apache >> Geronimo >> > >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> > _______________________________________________ >> > Quickfix-developers mailing list >> > Qui...@li... >> > https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> > >> > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > -- View this message in context: http://www.nabble.com/Performance-of-QuickFix-J-vs-QuickFix-%28C%2B%2B%29-tf3134559.html#a8821178 Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |