0
我参与了Firefox扩展的开发。我们的扩展很复杂,我们在永久僵尸隔间方面存在问题。 Mozilla Zombie compartments page只给出一般信息,只介绍问题和测试方法。因此,我想问一下,如果有人知道常见的瓶颈和有问题的设计模式(或简单地说,已知的错误和失败)以及如何处理它们的最佳实践。Firefox扩展中的僵尸隔间
补充:这是good link扩展中的内存泄漏的常见原因。还有其他建议吗?
我参与了Firefox扩展的开发。我们的扩展很复杂,我们在永久僵尸隔间方面存在问题。 Mozilla Zombie compartments page只给出一般信息,只介绍问题和测试方法。因此,我想问一下,如果有人知道常见的瓶颈和有问题的设计模式(或简单地说,已知的错误和失败)以及如何处理它们的最佳实践。Firefox扩展中的僵尸隔间
补充:这是good link扩展中的内存泄漏的常见原因。还有其他建议吗?
最常见的故障模式是长时间存储对网页的引用。这可能是由于以下几个原因而发生的:
基本上,任何时候你使用网页中的某些东西时,确保你永远不会把它分配给任何非var局部变量声明,并且你不会创建新的长效函数关闭超过它。这两件事情将有助于大部分案件。
请注意,这些都不是特定于Firefox扩展;它适用于JavaScript中的所有编码...
是的,这些都是非常通用的提示。对于通用技巧,我们在Mozilla上有很好的[在JavaScript中使用XPCOM而不泄漏](https://developer.mozilla.org/en/Using_XPCOM_in_JavaScript_without_leaking)页面。从经验中得到更具体的东西? – gakhov 2012-04-05 10:22:59
这些实际上是非常具体的。 “忘记var”位是我见过的人最常见的错误之一。使用严格模式可能是避免这种缺陷的最简单方法。 – 2012-04-05 14:23:32
由于每个严重的扩展使用“严格”模式,这并不是真正的陷阱。我在一些棘手的情况下很有趣 – gakhov 2012-04-05 16:58:42