redhat-developer / redhat-developer/vscode-java
start-up slow when opening a single .java file in empty workspace
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 2.3k
- Fork
- 546
- Merge medio
- 20h 1m
- PR unite (30g)
- 11
Descrizione
Use case
Open VS Code without opening any folder. Drag a .java file into the window. Java extension is expected to work immediately, but it takes several seconds.
Let's see if we have chance to improve it.
I find some clues:
- a) 2~3s after java extension starts to activate, JDTLS starts to write server logs. (client side code and launching JVM)
- b) it's another 5s before
JavaLanguageServerPluginis started. (mostly related to OSGi?) - c) initialization and follow-up building jobs are finished within 1s.
Attaching the logs.
Extension host log
[2022-09-08 13:24:51.158] [exthost] [info] ExtensionService#_doActivateExtension redhat.java, startup: false, activationEvent: 'onLanguage:java'
JDTLS log
!SESSION 2022-09-08 13:24:53.994 -----------------------------------------------
eclipse.buildId=unknown
java.version=17.0.4.1
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -data C:\Users\yanzh\AppData\Local\Temp\vscodesws_68b2c\jdt_ws
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:58.761
!MESSAGE class org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin is started
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:58.963
!MESSAGE Main thread is waiting
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:59.023
!MESSAGE >> initialize
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:59.025
!MESSAGE Initializing Java Language Server 1.16.0.202209070809
...
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:59.741
!MESSAGE Creating the Java project jdt.ls-java-project
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:59.771
!MESSAGE >> initialized
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:24:59.921
!MESSAGE Finished creating the Java project jdt.ls-java-project
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:25:00.409
!MESSAGE Workspace initialized in 691ms
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:25:00.534
!MESSAGE >> initialization job finished
...
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-08 13:25:00.833
!MESSAGE >> build jobs finished
...
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia tracciando l’attivazione di onLanguage:java e l’avvio di JDTLS, poi esamina l’intervallo precedente all’avvio di JavaLanguageServerPlugin, in particolare l’inizializzazione OSGi menzionata nel report. Riproduci il flusso con uno spazio di lavoro vuoto contenente un singolo file .java e confronta i timestamp dell’extension host e di JDTLS; il lavoro è completato quando il ritardo di avvio viene ridotto senza ritardare l’inizializzazione o il completamento della build.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java, typescript, vscode
- Ambito
- developer-experience, performance, tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100