Mutli Threaded Analysis
We have added multi threaded support for the following portions of the analysis pipeline: Processing imports, processing exports, jump table analysis, indirect call analysis, function discovery and analysis, Structured Exception Handler analysis (PE binaries only), function local analysis, program counter relative analysis, static library analysis and function propagation.
The following portions of the pipeline will remain processed in serial: Processing the models structure after parsing the binaries format, symbol loading, processing the pending basic block queue, C++ exception handler analysis (PE binaries only) and several operations we call probes, such as generic code and data type discovery.
The result of this is a sizeable performance improvement, especially on larger binaries. Using a small sample amount we can begin to see the difference multi threaded analysis support makes using the below graph. Note the Y axis for duration is logarithmic in scale and not linear in order to accommodate the large spread of results within the graph, the 64-bit build of Relyze was used and the test machine had 12 CPU's.
The built in binary diffing feature also benefits from our new multi threaded support so you will see faster diffing results also.
We are enabling multi threaded analysis support across both Relyze Standard and Relyze Professional, as well as the free trial version of Relyze!