redhat-developer / redhat-developer/vscode-java

start-up slow when opening a single .java file in empty workspace

Abierto
#2,666 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

extension-start performance
Lenguaje dominante
TypeScript
Estrellas
2.3k
Forks
546
Merge medio
20 h 1 min
PR fusionados (30 d)
11

Descripción

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 JavaLanguageServerPlugin is 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

...

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza siguiendo la activación de onLanguage:java y el lanzamiento de JDTLS; después inspecciona el intervalo anterior al inicio de JavaLanguageServerPlugin, especialmente la inicialización de OSGi mencionada en el informe. Reproduce el flujo de un espacio de trabajo vacío con un único archivo .java y compara las marcas de tiempo del extension host y de JDTLS; se considera terminado cuando se reduce el retraso de inicio sin retrasar la inicialización ni la finalización de la compilación.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, typescript, vscode
Área
developer-experience, performance, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.