我已经编写了一个基于浏览器的应用程序,它打算无限期地运行。可悲的是,它几乎保证在几个小时(2-6小时)之后就会崩溃Chrome选项卡。
我的代码中可能有内存泄漏,也可能是我正在使用的某个库,也可能是与我正在使用的一些较新的Chrome功能(如WebRTC )有关的Chrome错误。这是一个复杂的应用程序,我最初试图寻找泄密的尝试失败了。
尝试自动重新加载页面以释放内存并避免崩溃
我试图解决这个问题,强迫浏览器每两个小时重新加载一次(后来减少到1),认为这样可以释放泄漏的内存,避免出现问题;该应用程序是有状态的,所以重新加载并不是一个真正的问题。
重新加载没有解决问题,标签仍然会崩溃,但现在它似乎是保证更多的崩溃在6-36小时范围内。
尝试使用Chrome扩展来重放崩溃的Tabs
我本来打算启动一个Chrome扩展,以增加站点和Chrome之间的更好的集成,所以我在新的扩展中添加了一些代码,以查找并重新加载我的选项卡,如果发现它已经加载但崩溃了。我原以为这是可行的,但现在24到48小时,整个谷歌浏览器都崩溃了,“哇!谷歌已经崩溃了。”
从奇怪到荒谬,我刚刚创建了一个小Windows应用程序(AHK脚本)来查找崩溃的Chrome消息并重新启动Chrome。显然,我只剩下一步了,要构建一个全新的操作系统来监视监控应用程序,如果监控应用程序失败,重新启动操作系统……
但说真的..。我对Chrome有什么不了解?这是怎么回事?我要强调的是,我写的这个小小的扩展几乎什么也做不了。我想不出它会怎样摧毁浏览器。它只会监视我崩溃的选项卡,并有一个内容脚本,允许我在注册或登录期间自动注册用户帐户。我看不出它会维护任何状态或缓存信息,或者任何可能耗尽内存或导致其他问题的东西。
因为撞车次数太少了,所以我很想弄清楚到底是怎么回事。
对不起,我知道这个问题含糊不清,我只是急切地想得到任何人可能有的洞察力。关于类似的问题,我找不到多少。
谢谢!
(我无法分享该网站或代码,因为该网站尚未正式启动。考虑到这个问题的性质,我认为这不应该是个问题。
发布于 2014-04-08 16:10:36
既然你在寻找洞察力..。
你有Chrome工具(控制台之类的)打开吗?
如果是,它们将持续消耗资源、日志记录、网络请求等。
这可能是泄漏/崩溃的原因。我碰到过一次用我的铬分机。除非绝对必要,否则不要让它们不断地打开。
试着诊断坠机。
尝试另一个(更新的)版本
如果您在Windows或OS上,请尝试安装(它接近边缘构建),并查看问题是否仍然存在。
https://stackoverflow.com/questions/22942266
复制相似问题