我有一个关于谷歌浏览器垃圾收集的问题(版本20.0.1132.47,Ubuntu 11.04 64位).
在比较堆转储和检查内存泄漏时,我发现了一些从未清理过的实例.通常这种行为可以追溯到程序员错误,但在这种情况下,我很无能为力..
看一下下面的截图

实例'child @ 610739'仅由属于子实例本身的函数的'bound_this'实例引用.所以根据我的理解,子实例应该是垃圾收集的,因为保持它的唯一其他引用是子实例本身(通过'bound_this'函数).
我正在使用underscore.js''bindAll'实用程序函数(underscore.js#bindAll)映射到chrome的'native_bind'函数(bound_this上的ECMA Script wiki)
我是否遗漏了一些明显的东西,如果是这样,有人可以解释是什么让这些实例保持活力?
更新:
同时我测试了相同的应用程序在chrominium(18.0.1025.168(开发人员构建134367 Linux)Ubuntu 11.10),它没有显示这些悬空实例..
更新2:
在Esailijas提示提供一个jsfiddle片段后,我创建了一个(http://jsfiddle.net/8gSTR/1/),模仿我基本上在做什么.不幸的是,运行这个小提琴并没有表明我在申请中遇到的不当行为.尽管引用了window.o数组来保持实例存活,但仍然引用"a"实例时所采用的堆转储看起来有点类似.

因为在我的情况下缺少这样的引用(屏幕截图1)我不知道是什么阻止了chrome释放这些实例...
更新3:
遵循loislos建议以启用隐藏属性.结果(扩展其中一个分支)可以在下面的屏幕截图中看到,但它不会让我更进一步.

javascript memory memory-leaks google-chrome google-chrome-devtools