1
$\begingroup$

I am using .net/c++ version of quickfix. How does logging effect Quickfix performance? If I disable logging to file, can it help to increase performance of quickfix?

Thanks,

$\endgroup$

3 Answers 3

1
$\begingroup$

I answered a stackoverflow question that was pretty much identical over here

Maybe it was you who cross posted. Long story short, logging has a real cost. Sadly there isn't alot you can do to get around it with a stock quickfix implementation.

$\endgroup$
1
$\begingroup$

Same answer as @chollida - any kind of logging has real computational cost. You can improve on the QuickFIX implementation without disabling the logging functionality by increasing the buffer size, or using message middleware to pass the logging task to another thread or core (which therefore amortizes the total computation time in the QuickFIX path).

$\endgroup$
1
$\begingroup$

Disk I/O has a big latency cost, so you must use an asynchronous logging framework and the fastest way to pass messages from thread A to thread B is to use the disruptor pattern. For a good event sourcing (i.e. logging to a file without log levels like info, warn, error, etc.) framework you can take a look on CoralLog. It can log a 64-byte message in 87 nanoseconds on average. When it comes to throughput it can easily log 4 million 64-byte messages per second. That should be more than enough for most HFT strategies.

Disclaimer: I am one of the developers of CoralLog.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.