【问题标题】:Firebreath plugin not getting shutdown() in IE8Firebreath 插件在 IE8 中没有关闭()
【发布时间】:2012-10-01 20:49:28
【问题描述】:

我有一个使用 Firebreath 构建的插件/activex(不知道哪个版本,我认为至少 1.6 - 如果有人告诉我在哪里看,我会在这里更新)。

在 IE8 中,而不是在 IE9 或 Chrome 中,每次页面刷新时内存使用量会增加几 MB。

我怀疑这意味着我在 javascript 中有一个循环结构,它也包含对插件的引用。还是包含插件的 DOM 元素?我们不会在 javascript 中构建任何“大”的东西,所以我的重点放在组成插件的(几个 MB)DLL 上。这是一个合理的想法吗?还有什么可能导致这种情况和/或我该如何调试它?

【问题讨论】:

  • 好的,请稍等。你知道当你向某人解释一个错误时,大约 2/3 的时候你会说“哦!等一下……”
  • 因此,如果我添加 javascript 来删除包含插件的 DOM 元素,并取消我对它的其他引用...然后只有这样 IE8 才会调用我的 shutdown() 方法,并销毁插件对象。然后内存蠕变要小得多,变化莫测,但平均最多 100KB,而不是 1-2MB。
  • 到哪里看取决于你是怎么得到的;如果你从 git 得到它,提交哈希是有用的。如果您下载了 tarball 或 zip,根目录中有一个版本文件,其中包含该提交哈希。

标签: firebreath


【解决方案1】:

通常这是插件内部的循环引用;不是在 javascript 中,而是在你的 c++ 代码中。但是,可能有一个错误已经出现,导致了这个问题。从 github(master 分支)尝试最新的,看看是否有变化。

【讨论】:

  • 嗨@taxilian - 循环结构不会在其他浏览器中导致同样的问题,而不仅仅是 IE8?
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多