我们正在使用ZK开发一个单页 Web 应用程序,它不断与服务器通信并更新其屏幕的一部分。更新频率可以达到 1 秒。在这些更新过程中,对大量JS对象的引用丢失,这些对象最终必须由垃圾收集器清理。
据我们所知,Chrome 仅在非活动选项卡上运行其垃圾收集器。这对我们来说是个问题,因为应用程序的选项卡通常处于活动状态并且几乎从不刷新,因此永远不会收集JS对象。如果保持活动状态足够长,选项卡最终会崩溃(Aww Snap消息)。
我们需要手动启动垃圾收集。到目前为止,我们已经尝试使用--js-flags="--expose-gc"
和 running运行 Chrome gc()
,但它抛出了一个异常:
ReferenceError: gc is not defined
这在 Firefox 上不会发生——内存使用或多或少是一个常数。
强制刷新页面不是一个选项。
我们将不胜感激任何和所有建议。
编辑:我们已经尝试运行window.gc()
和gc()
双方在Chrome版本23.0.1271.97 m
和25.0.1364.2 dev-m