microsoft / microsoft/vscode-cpptools
IntelliSense using too much memory and resetting pch
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 6.2k
- フォーク
- 1.7k
- 平均マージ
- 14時間 46分
- マージ済み PR(30日)
- 61
説明
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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
UnrealCourse ToonTanks プロジェクトで報告内容を再現し、PawnTank.h と PawnTank.cpp に焦点を当てながら、cpptools.srv のメモリ使用量と PCH キャッシュの再生成を監視します。hover lookup 中、PawnTank.cpp を閉じたとき、および再度開いたときの動作を比較します。lookup によって過剰なメモリ使用が発生せず、PCH が不必要に再生成されなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp, unreal-engine
- 領域
- devtools, performance
- issue の種類
- バグ
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100