-
Notifications
You must be signed in to change notification settings - Fork 128
OBSOLETE Optimize Performance
Windup performance depends on a number of factors, including hardware configuration, the number and types of files in the application, the size and number of applications to be evaluated, and whether the application contains source or compiled code. For example, a file that is larger than 10 MB may need a lot of time to process.
In general, Windup spends about 40% of the time decompiling classes, 40% of the time executing rules, and the remainder of the time processing other tasks and generating reports. This section describes what you can do to improve the performance of Windup.
Try these suggestions first before upgrading hardware.
-
If possible, execute Windup against the source code instead of the archives. This eliminates the need to decompile additional JARs and archives.
-
Specify the
--target
platform on the on theWINDUP_HOME/bin/windup
command line to limit the execution of rules to only those that apply to this target platform. -
Be sure to specify a comma-delimited list of the packages to be evaluated by Windup using the
--packages
argument on theWINDUP_HOME/bin/windup
command line. If you omit this argument, Windup will decompile everything, which has a big impact on performance. -
Specify the
--excludePackages
and--excludeTags
arguments where possible to exclude them from processing. -
Add additional proprietary packages that should not be processed to the
ignore/proprietary.package-ignore.txt
file in the Windup distribution directory. Windup can still find the references to the packages in the application source code, but avoids the need to decompile and analyze the proprietary classes. -
If you have access to a server that has better resources than your laptop or desktop machine, you may want to consider running Windup on that server.
If the steps above do not improve performance, you may need to upgrade your hardware.
-
If you have access to a server that has better resources than your laptop/desktop, then you may want to consider running Windup on that server.
-
Very large applications that require decompilation have large memory requirements. 8 GB RAM is recommended. This allows 3 - 4 GB RAM for use by the JVM.
-
An upgrade from a single or dual-core to a 4-core CPU processor provides better performance.
-
Disk space and fragmentation can impact performance. A fast disk, especially a Solid State Drive (SSD), with greater than 4 GB of defragmented disk space should improve performance.