Preview the Performance Improvements in IntelliJ IDEA 2019.3!
We’ve just published a new EAP build of the upcoming IntelliJ IDEA 2019.3, which focuses heavily on improving the performance and overall quality of the IDE.
Now, when the major performance changes are included in the latest IntelliJ IDEA 2019.3 EAP build, we can tell you about the key changes in detail.
As soon as you launch the IDE, you’ll see one of its major performance improvements – much faster startup.
While we always strive to improve the IDE’s performance, since v2019.2 we have making special efforts to reduce startup times, and this release cycle continues this long-term effort of speeding up the startup time.
This upcoming major version v2019.3 reduces startup times even further by introducing substantial architectural changes to the IntelliJ Platform.
The first three phases – bootstrap, app initialization preparation, and app initialization – have been optimized significantly. The rest are not yet fully optimized, but they have been improved thanks to some platform-wide changes.
During the bootstrap and app initialization preparation phases, classes are loaded, the UI subsystem is initialized, and other low-level things happen. We have optimized some routines (e.g. font loading on macOS) or parallelized them, because not every activity has to be fully completed by the beginning of the next phase. Now such activities block the subsequent steps only when they must.
In an ideal world, the app initialization phase (including app component creation) should not even exist as everything should be queried on demand. But in real life, there are some heavy services – file indices, virtual file system, code styles, and so on. So now, instead of waiting sequentially for each one to load, the IntelliJ Platform provides service preloading with several policies (fully async or partially async). Some core services have already been updated to utilize this feature.
We’re happy that we’ve achieved some exceptional optimization results, but we are not done with boosting startup times yet! We have more major changes planned, so you may expect even faster startup with v2020.1.
When importing a large Gradle project, performance has been optimized to reduce the peak memory consumption.
In addition, the IDE doesn’t freeze as you edit a POM.xml file, and can instantly display completion suggestions.
Version Control Systems
In the Version Control subsystem, we’ve managed to optimize the processing of events and the handling of ignored files. There will be fewer freezes and faster status updates in large projects. Better handling of ignored files has also been backported to v2019.2.3.
We’ve invested a lot of effort into optimizing Java type inference, which helped us fix the various editor hangs. Also, Java type inference for long method call chains now works much faster.
Another improvement in this area is that code highlighting in Java files is now faster, especially when it comes to methods with generic var-args (Arrays.asList, Map.ofEntries, etc.) into which dozens of arguments are passed.
Other notable performance-related improvements include:
- Fixed performance issues when working with a large number of editor or debugger tabs.
- Greatly improved rendering of the project tree, especially when huge directories with thousands of files are displayed there.
- Resolved the IDE freezes in “Find in path” when the regular expression pattern matches very long strings.
- Improved performance of the Join Lines action when it’s invoked for many lines at once.
Eliminating UI freezes
We also continue to eliminate UI freezes, step by step. As you may know, with v2019.2 we introduced a straightforward way for you to report UI freezes for a comprehensive investigation – through the same dialog as the one used for reporting exceptions.
Up to this moment, we’ve received about 6,600 UI freeze reports and have fixed issues that were causing UI freezes affecting over 1600 reports.
We will definitely keep fixing UI freezes, so if you experience any of those, please report them to us. Bear in mind that the Early Access Program is a great time to submit such reports, as we still have time to fix some freezes before the release day, which is planned at the end of this fall.
Try it all out!
Give the new IntelliJ IDEA 2019.3 EAP build a try! Download it from our website or update via the Toolbox App. Patches for the in-product update will be available if you’re using the previous EAP build.
We hope you’ll enjoy all the improvements that are coming your way with the upcoming IntelliJ IDEA 2019.3. Check out our recent blog posts as well to learn about all the changes that v2019.3 is going to introduce.