萌えハッカーニュースリーダー

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

出典: https://randomascii.wordpress.com/2025/10/09/finding-a-vs-code-memory-leak/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

それは、タクシーの運転手じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search