問題のコードは機密扱いであるため、コード スニペットを提供することはできません。ただし、問題を明確に述べるために最善を尽くします。
私たちのコードベースには、"BIGGY"
すべてのオブジェクトとそれらのオブジェクトに適用可能なメソッドを追加するグローバル変数 (それを と呼びましょう) があります。そこで、 というオブジェクトを追加しまし"Fish.Apple.Banana.Potato"
た"BIGGY"
。"letsCall"
のメソッドを定義し、それを 1 回BIGGY["Fish.Apple.Banana.Potato"]
呼び出すとn
、メモリ リークが発生していることがわかります (プロセス メモリは時間の経過とともに急増します)。
ただし、 の名前を に変更する"Fish.Apple.Banana.Potato"
と"Fish.Apple.Ban.Potato"
、メモリ リークは発生しません。他に変更はありません。
これを引き起こさない長いキーがあるため、オブジェクトキーの長さに関連することはできません。長いオブジェクト キーに最適化されていない JS エンジンについて読んだことがありますが、オブジェクト キーの選択に起因する安定性やメモリ リークの問題への参照が見つかりません。
誰かがこれを見たことがありますか、またはこれを修正する方法を知っていますか? 問題がなくなるまでオブジェクト識別子を変更することは、私の意見では良い解決策ではありません。