在 Mac、Chrome、Firefox 和 Safari 中运行基于 GWT 的 Web 应用程序时,我们遇到了严重的内存问题。
例如,使用 Firefox 时,在 Mac 上查看活动监视器时,即使频繁刷新,内存消耗也会随着时间的推移而迅速增加,并且在一个重要会话后可能达到 1 GB。Chrome 和 Safari 也会出现类似的现象。
但是,我们看不到使用各种分析工具的真正原因,包括 Java JProfiler(用于 GWT)和 Chrome 分析器以及查看原生 JS、侦听器和 DOM 元素的时间线。
实际上这里有两个相关的问题:
长时间使用 UI 而没有刷新,内存在增加。在这种情况下,我们可以看到一些无法访问的未收集垃圾 SVG 元素(我们使用的是基于 SVG 的画布),但是 Activity Monitor 中的内存增加量远远高于我们对这些垃圾的预期。
即使经过多次刷新,内存仍然很高,即使分析器显示上述所有垃圾都完全消失了。
我们正在追查这个漏洞一段时间,但没有任何结果,所以我将不胜感激。
谢谢,
亚龙。