Skip to content

[performance] explore options to deploy and run the language server from JAR files #1293

Closed
@martinlippert

Description

@martinlippert

At the moment, we run the language server from an exploded file structure to achieve the best startup performance. With the latest improvements in Spring Boot 3.3, we should explore whether we can use a different, JAR-oriented deployment layout with similar or even better startup performance.

This would allow us to have a much shallower file structure in the language server plugins and would allow us to remove the extra packaging in Windows (and ship the distribution as a regular ZIP file again). And it will pave the way for further optimizations, like running with CDS enabled.

Step 1 would be to switch to the new standard jar-mode layout: https://docs.spring.io/spring-boot/reference/packaging/efficient.html + validate startup performance is not degrading.

If that works, we could migrate the language server plugins to use this new layout (both on Eclipse and VSCode).

Next steps would be to remove the extra Windows packaging/unzipping parts and experiment with CDS as an additional speedup. The use of CDS might be a bit more difficult to do, since the CDS archive file is JVM and OS specific, so we probably can't produce the right one at build time. Instead, we might need to create one while running the language server for the first time, and then re-using the created archive file for subsequent startups - with this logic being located in the launcher implementations for Eclipse and VSCode.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions