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