我不能提供代码片段,因为有问题的代码是分类的。但是,我会尽我最大的努力清楚地说明这个问题。
我们的代码库有一个全局变量(让我们称之为"BIGGY"
),我们将所有对象和适用于这些对象的方法添加到其中。因此,我添加了一个名为"Fish.Apple.Banana.Potato"
to的对象"BIGGY"
。我为 定义了一个方法"letsCall"
,BIGGY["Fish.Apple.Banana.Potato"]
并多次调用它n
,我发现存在内存泄漏(进程内存随着时间的推移而激增)。
但是,如果我将名称更改"Fish.Apple.Banana.Potato"
为"Fish.Apple.Ban.Potato"
,则不会发生内存泄漏。没有其他变化。
它与对象键的长度无关,因为我们有更长的键,不会导致这种情况。我已经阅读了一些 JS 引擎没有针对长对象键进行优化,但是找不到任何对由选择对象键引起的任何稳定性/内存泄漏问题的引用。
有没有人看到这个或知道如何解决这个问题?在我看来,在问题消失之前更改对象标识符并不是一个好的解决方案。