QuickFIX/J Performance Improvement
I found this while profiling an internal QuickFIX/J application.
If you do not specify a log4j.properties file, then for some reason the isDebugEnabled flag defaults to true, and all the logging functionality is executed, even though you will never see any logging output (because it doesn't know where to write to). For QuickFIX/J, it means that it is doing a lot of expensive string concatenation as part of the MINA FIXMessageProcessor decoding. I am not sure if this is documented behavior that without any specification the logging level would default to DEBUG or if this is a defect, but in either case, it is useful to know.
With all the focus on low latency, this seems to shave off about 3 percent of execution time in a high volume message processing. Your mileage may vary.
- andy's blog
- Login or register to post comments
