Besides other plugins we used M2Eclipse for integration between Eclipse and Maven.
Before diving into the solution I must admit that performance problems could have been solved by removing PointSec (harddisk encryption), McAffe Virus Scan and buying SSD harddisks, but because of corporate standards and politics we never managed to carry out any of these.
The Eclipse Tuning was performed in the eclipse.ini file and the Eclipse workspace setup. First the workspace setup:
Maven configuration
- Navigate Window -> Preferences -> Maven
- Remove checkmark for Offline
- Remove checkmark for Debug Output
- Remove checkmark for Download repository index updates at startup
- Add checkmark in Hide folders or physically nested modules (experimental)
Performance related settings
A huge project like websystemet results in really bad response times in Eclipse, if default workspace settings are used. The following changes to the workspace settings increase the Eclipse performance and responsiveness.
- Remove automatic build
- Navigate: Windows -> Preferences -> General -> Workspace
- Remove checkmark in Build automatically
- Limit local file history
- Navigate: Windows -> Preferences -> General -> Workspace -> Local History
- Set Maximum Entries per file to 20
- Disable Usage Data Collector
- Navigate: Windows -> Preferences -> Usage Data Collector
- Remove checkmark in Enable capture
- Disable Validations
- Navigate: Windows -> Preferences -> Validation
- Remove checkmark Allow projects to override these preference settings
- Add checkmark Suspend all validators
- Disable automatic Task synchronization
- Navigate: Windows -> Preferences -> Tasks
- Remove checkmark Synchronize with repository every …
- Remove plugins from Startup and Shutdown processes
- Navigate: Windows -> Preferences -> General -> Startup and Shutdown
- Uncheck Usage Data Gathering Plugin
- Uncheck Usage Data Recording Plugin
- Uncheck JBoss Tools Usage Reporting Plugin
eclipse.ini
Replace:
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:MaxGCPauseMillis=10
With:
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms256m
-Xmx384m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
Some of the places I've found inspiration: