Platform UI/Juno Performance Investigation
Several users are reporting performance problems when using the Juno release. Here is a summary of what we know and what is being done to resolve them.
- Symptoms are slow UI operations such as open and closing views/editors/perspectives
- Often the degradation only happens after prolonged usage, or when certain plugins are installed
- There are mixed reports of changing JVM version, vendor, or command line arguments improving the situation, but with no definite pattern
- Often but not always the slowness occurs with JEE or Android editors
- Similar symptoms are seen by both JGit and Subversion users, but not CVS so far
- Reverting platform version to Indigo with all other plugins the same, usually resolves the problem
The problems seem to fall into two general categories:
- Small but noticeable degradation in UI performance between 3.7 and 4.2 platform code base. For example in a fresh new workspace, opening an editor taking 100ms rather than 50ms. These problems are known and slow/steady progress is being made on improving it. In general these problems are due to having a completely new code base for the platform user interface. The 3.x platform had many years to optimize the critical code paths, and these optimizations will take time to make on the 4.x stream over the coming releases.
- Extreme degradation of performance, such as 3-4 seconds to open/close editors. These problems typically only occur after prolonged usage, and in conjunction with certain plugins. The Eclipse platform committers have not yet reproduced these problems but some leaks have been identified that could be contributing to it. It is quite possible that leaks in the platform code, in conjunction with expensive listener computations in contributed plugins, combine to manifest the problem.
- The main focus over the coming months will be making performance fixes in the Juno stream. As the basis of the Eclipse Long Term Support program, the Juno stream is very important to stabilize and improve. A small set of fixes were made for Juno Service Release 1, arriving this week. Further fixes will target Juno Service Release 2 (February 2013). Changes that are considered too risky for the service stream will be made in the Kepler stream (June 2013 release).