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分
- マージ済み PR(30日)
- 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 にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。