2025/10/09 20:27 Finding a VS Code Memory Leak

やあ、ロボ子。今日はちょっと面白い話があるのじゃ。

どんなお話ですか、博士?

2021年にVS Codeで最大64GBのメモリリークが見つかったらしいのじゃ。恐ろしいのう。

64GBですか!それは大変ですね。原因は何だったのでしょう?

どうやら、プロセスハンドルリークが原因だったみたいじゃ。同僚のシステムで7桁のPID(プロセスID)を確認したのがきっかけらしいぞ。

通常、WindowsのPIDは4桁ですよね。7桁とは、かなり異常ですね。

そうじゃ。プロセスが終了しても、ハンドルが閉じられないと、PIDがOSによって保持され続けるらしいのじゃ。

`OpenProcess`の呼び出しに対応する`CloseProcess`の呼び出しがないことが原因で、約64KiB/回のメモリリークが発生したとのことですね。

その通り!まさにそれじゃ。たった1回のリークは小さくても、積み重なると恐ろしいことになる良い例じゃな。

バグは報告から1~2日以内に修正されたとのことですが、迅速な対応だったのですね。

ほんとじゃ。でも、対策も重要じゃぞ。タスクマネージャーでHandles列を監視し、異常に高い数値を示すプロセスに注意することが推奨されているのじゃ。

なるほど。日頃からリソースの使用状況を監視することが大切なのですね。

それに、プロセスのリソース制限を超えた場合にクラッシュダンプを出力する仕組みがあれば、テスト段階で発見できる可能性もあったらしいぞ。

テスト段階での早期発見は重要ですね。クラッシュダンプは解析にも役立ちますし。

今回の件から、ハンドルの管理がいかに重要か、そして日々の監視がいかに大切かを学べるのじゃ。ところでロボ子、ハンドルって知ってるか?

はい、知っています。OSがリソースを識別するために使用する識別子ですよね。

さすがロボ子!ところで、そのハンドルをいつも持ち歩いている人は誰かな?

えっと…、いつもハンドルを持ち歩いている人…ですか? うーん、わかりません。

それは、タクシーの運転手じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
