The "TestFast" project in QWFIX SDK sample contains functions used for QA testing and benchmark of the FastSessionContext class.
The "TestFast" project in QWFIX SDK sample contains functions used to QA the FastSessionContext class.
Both "TestFastMsgCodec" and "TestFastMsgCodec2" methods are used to test the message encoding and decoding in FastSessionContext. The both work in similar ways as described below:
There are some differences between those two methods:
Testing Result:
QWFIX FAST framework passed all testing scenarios.
"BenchmarkFastCodec" method is used to benchmark the performance of FastSessionContext.
The method uses the same method to randomly generate the FAST message using schema "QA1". It then encodes the message into a MemoryStream and decodes the message from the same MemoryStream.
The program measures the time used to perform the following operations on a certain number of FAST messages:
With the time measurement listed above, we can calculate the performance of encoding and deconding FAST messages.
We don't want to include the time of composing the message because:
Testing Result:
On a 2.4 GHz Core 2 Duo machine, with our QA template, the machine achieved about 2.4 million fields/second for encoding and 2.7 million fields/second for decoding, within a single thread.
In reality, the performance should definitely be better because the fields generated in testing are random fields, which require more bits to encode and decode.
Users are welcome to use the same method to test your own FAST templates and publish the benchmark numbers.