Firefox 28(仅Win7)在JS内存泄漏后崩溃

Firefox 28 (only Win7) crash after JS memory leak

本文关键字:内存 JS 泄漏 崩溃 Win7 Firefox      更新时间:2023-09-26

我一整天都在努力寻找奇怪的内存泄漏的原因,这只存在于Firefox 28和Windows 7中- Chrome (Linux/Win 7)是好的,以及相同版本的Firefox for Linux。在旧版本的Windows Firefox上也可以正常运行。

更奇怪的是,同样的功能在FF 28/Win 7上运行良好,有三种不同的数据集,但对于其他两种,它会泄漏和崩溃浏览器…在其他平台/浏览器上,这五种设置完全没问题…

有人知道发生了什么事吗?或者可以帮助我获得一些适当的跟踪工具,或者可能知道Mozilla页面上类似问题的一些错误报告?

我确信这不是由插件引起的-我已经安装了新的Firefox副本,甚至在安全模式下运行-它仍然崩溃…

我已经找到了导致我的情况下内存泄漏的原因。也许这将帮助其他人解决类似的问题:


这个问题(可能)是由这个bug引起的:https://bugzilla.mozilla.org/show_bug.cgi?id=972515

我的页面上有一些图表,其中有几个是火花线。我使用以下代码制作动画(源代码):

var totalLength = path.node().getTotalLength();
path
  .attr("stroke-dasharray", totalLength + " " + totalLength)
  .attr("stroke-dashoffset", totalLength)
  .transition()
    .duration(2000)
    .ease("linear")
    .attr("stroke-dashoffset", 0);

在某些情况下,path.node().getTotalLength();返回NaN并在动画时导致内存泄漏。从我的图表中删除上面的代码可以解决这个问题。

我已经受够了FF,因为所有的内存泄漏等等。我一直在运行v16,因为每当我尝试升级到新版本时,它们几乎都会在大量使用30分钟后崩溃,而且我使用过的FF没有一个版本修复过内存泄漏问题。一个也没有。

我实际上在快速启动上安装了一个小批处理文件,这样我就可以在FF消耗了我所有的RAM时快速杀死FF,这样我就可以重新开始使用"恢复会话"来自动重新加载我以前的所有选项卡。在尝试了所有泄漏问题的"解决方案"后,这是唯一一个对我有好处的。显然,mozilla的那些傲慢的家伙宁愿把UI搞得死死的,也不愿做出一个真正好用的浏览器。他们甚至比微软更糟糕,因为微软迟早要听取客户的意见,否则就会破产,而非营利组织可以永远随风而去。

无论如何,我刚刚安装完PM,包括用他们的小导入程序从FF导入所有内容,一切都完美无缺,包括所有设置和我使用的过多的附加组件。唯一的困难是装上机器人,我离不开它。我最终还是傻了,让roboform任务栏程序将roboform附加到PM上,然后完美地工作了。然而,为了让roboform继续在PM上工作,roboform任务栏程序必须一直运行,但这是永远放弃FF的一个非常小的代价。

我已经使用PM一个星期了,每天打开/关闭/保持数百个标签,我惊讶于PM比FF快得多,以及PM比FF占用的内存非常小。即使在一个星期的大量使用之后,PM也没有超过1gb,甚至更好的是,当我关闭标签时,所有的内存都归还了。

基本上,PM就是FF应该成为的样子。更妙的是,《苍白的月亮》背后的天才马克·斯特拉弗(Mark Straver)已承诺保持首相的用户界面从根本上不受干扰。我将来也会在我所有客户的电脑上安装PM而不是FF !

(顺便说一句,所有针对firefox内存泄漏问题的"建议修复"都是一个恶心的笑话。没有一个是有效的。插件不会导致内存泄漏!Firefox也!我怎么知道?因为我切换到Pale Moon,像在Firefox中一样导入所有东西,你猜怎么着?在Pale Moon中没有内存泄漏!哦,我使用Adblock Plus, Flash, Java, DoNotTrackMe, BetterPrivacy CookieCuller, DownloadHelper, Element Hiding Helper, IE View, ViewAbout, Visited和roboform。所以这些都不会导致firefox内存泄漏问题!)