Firefox扩展中的僵尸隔间

时间:2012-04-05 00:31:31

标签: javascript firefox memory-leaks firefox-addon

我参与了Firefox扩展的开发。我们的扩展是复杂的,我们有永久僵尸隔间的问题。 Mozilla Zombie compartments page仅提供一般信息,只介绍问题和测试方法。

所以,我想问一下是否有人知道常见的瓶颈和有问题的设计模式(或简单地说,已知的错误和失败)以及如何处理它们的最佳实践。

补充:这是扩展中内存泄漏的good link常见原因。还有其他建议吗?

1 个答案:

答案 0 :(得分:2)

最常见的故障模式是将对网页的引用存储时间过长。出现这种情况有几个原因,我见过:

  1. 分配给全局变量。特别是由于忘记'var'。
  2. 分配给您用于存储州的全局变量的成员,然后不清除它。
  3. 创建关闭网页对象的新函数对象,然后将这些函数存储在某处(特别是作为事件侦听器)一段时间。
  4. 基本上,每当你从网页上处理某些东西时,请确保你永远不会将它分配给除了用var声明的局部变量以外的任何东西,并且你不会创建关闭它的新的长期函数。这两件事对大部分案件都有帮助。

    请注意,这些都不是特定于Firefox扩展;它适用于JavaScript中的所有编码......