Absent Member.
Absent Member.
3562 views

Optimizing fortify translation time

HI,

We bought a 64 logical core machine with 126GB memory and tried to translate a vcxproj with about 1000 files. It's a big project. Reading SCA optimization guide, it talks about using '-j' option (or com.fortify.sca.RmiWorkers property) to do parallel work but it seems this only affects scanning process (-scan option).

How do I improve translation phase as right now the memory consumption is just 8% and CPU is mere 2-3%?

I've used different values for com.fortify.sca.RmiWorkers, com.fortify.sca.RmiWorkerMaxHeap and -Xmx properties but cannot seem to improve performance.

The translate phase takes 3 hour and scan phase takes additional 3 hr. I don't use any custom rules and such. It's just plain out of box settings.

What would be the normal scan time for such project given our machine specification (128GB memory, 64 logical cores, SSD drives)

Thank,

-tekno

Tags (1)
0 Likes
2 Replies
Absent Member.
Absent Member.

Hi Tekno,

This is a limitation of the Microsoft toolchain. It compiles one file at a time and does not support parallel compilation within a single project. As a result, SCA can only translate one file at a time.

The MS tools do support parallel builds at the level of projects. E.g. Two non-dependent projects can build simultaneously by configuring MSBuild or devenv to execute a parallel build. See

   https://msdn.microsoft.com/en-us/library/9h3z1a69(v=vs.90).aspx

for some more information about making this happen. This is not the same thing as parallel compilation, so the speedup may not be significant.

If using parallel builds, then the fortify-sca.properties key

   com.fortify.sca.DaemonCompilers

needs to have com.fortify.sca.util.compilers.MicrosoftCompiler in the value list. It is included by default, so it would only be absent if the user has previously made a manual change to the properties.

The SCA command-line parameter –j and the property keys referencing RmiWorkers have no impact on the translation phase.

Thank you,

Mike

0 Likes
Absent Member.
Absent Member.

Was Michael's answer correct? If so, please mark the answer as correct. Thanks!

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.