[performance] explore options to deploy and run the language server from JAR files #1293
Labels
for: eclipse
something that is specific for Eclipse
for: vscode
something that is specific for VSCode
theme: internal-architecture
theme: performance
type: enhancement
Milestone
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.
The text was updated successfully, but these errors were encountered: