redhat-developer / redhat-developer/vscode-java
Slow workspace initialization and reference search in large Gradle monorep
未关闭
@snjeza 已经在做这个了。
开始于 2024年12月29日。
regression
- 主要语言
- TypeScript
- 星标
- 2.3k
- 派生
- 546
- 平均合并
- 20 小时 1 分钟
- 30 天内合并 PR
- 11
描述
Description
Each time I start VSCode, the Java Language Server re-initializes the workspace which takes a considerable amount of time. During this initialization period, I cannot:
- Navigate to object references
- See method callers/usages
- Use other indexing-dependent features
Even after indexing is complete, searching for references takes several seconds to display results, which is significantly slower compared to IntelliJ.
Project Structure
- Type: Monorepo with root project and multiple modules
- Build Tool: Gradle
Current Setup
- Extensions installed:
- Gradle for Java
- Java Language Server
What I've tried
- Setting
"java.import.gradle.enabled": false- This didn't help as it prevented project importing altogether, making indexing features unavailable - Default settings with
"java.import.gradle.enabled": true- Works but very slow initialization
Expected Behavior
- Faster workspace initialization on startup
- Quick reference search response (similar to IntelliJ performance)
- Persistence of indexing between editor sessions
Actual Behavior
- Every editor restart triggers full workspace reinitialization
- Reference search takes several seconds to display results
- Unable to use navigation features during initialization
Environment
- OS: macOS Ventura 13.1
- Java Language Server Extension Version: 1.38.0
- Gradle for Java Extension Version: 3.16.4
- VSCoder Version: 1.93.1
- JDK Version: Amazon Coretto 1.8
Additional Context
This is affecting development productivity significantly, especially when working with large codebases that require frequent navigation between references and implementations.
Question
Is there a way to:
- Persist the indexing between editor sessions?
- Optimize the reference search performance?
- Configure selective indexing for specific modules while maintaining full functionality?
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
评估
这个 Issue 还没有评估数据。