microsoft / microsoft/vscode-cpptools

IntelliSense using too much memory and resetting pch

Abierto
#7,147 25 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug Language Service performance Verifying - Internal
Lenguaje dominante
TypeScript
Estrellas
6.2k
Forks
1.7k
Merge medio
14 h 46 min
PR fusionados (30 d)
61

Descripción

Ok, got it.

Your PCH some logic has issues. I have 2 files PawnTank.h and PawnTank.cpp. If in PawnTank.ccp when I do a look up (hover with with left mouse button held down) cpptools.srv goes up as high as 2GB Real Mem then generates a 1.7GB PCH cache file for PawnTank.h. This takes about 50 seconds. If I close PawnTank.cpp, then reopen it, the whole process takes another 60 seconds as PawnTank.h PCH is regenerated unnecessarily yet again.

You're building a huge in memory cache structure, then dumping it when the file is closed. I recommend some sort've memory mapped DB that is local plus better cache invalidation logic.

The UE4 tutorial "Toon Tanks" is here https://gitlab.com/GameDevTV/UnrealCourse/ToonTanks. Install UE4, clone "Toon Tanks", build and step around, you'll see.

I didn't want this to be a career move so I'm going to live with what I've got.

I switched C_Cpp Tag Parser and for the time being, it works like a charm.

Originally posted by @magwa101 in https://github.com/microsoft/vscode-cpptools/issues/7143#issuecomment-796247121

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

Reproduce el informe con el proyecto UnrealCourse ToonTanks, centrándote en PawnTank.h y PawnTank.cpp mientras supervisas el uso de memoria de cpptools.srv y la regeneración de la caché de PCH. Compara el comportamiento durante la consulta de hover, al cerrar y al volver a abrir PawnTank.cpp; se considerará completado cuando la consulta no provoque un uso excesivo de memoria ni regenere innecesariamente el PCH.

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

Evaluación

Stack tecnológico
cpp, unreal-engine
Área
devtools, performance
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.