LOG_TRACEs nullify SSE2 optimizations in the Zero-Suppression Alg.
Trace Logs slow the search for threshold crossing points even if they are filtered in the logger initialization.
The reason is that the macro LOG_TRACE ends up being replaced by a for loop, calling the open_record function in the initialization part (see BOOST_LOG_STREAM_WITH_PARAMS_INTERNAL at the link). Log filtering is applied with this function, introducing an overhead.
Benchmark results on a sample file of about 16 MB: benchmark_results.txt