11 月 1 日 ,谷歌公布了对 Chrome 浏览器的一系列改进,包括删除 Chrome 的内存历史本地缓存机制,以彻底解决 Chrome 关闭时挂起的问题。
几年前,谷歌实验室的测试结果表明,缓存 Chrome 的内存历史索引,比在每次启动时重新索引历史更快。因此,谷歌在 Chrome 浏览器中对内存使用历史进行了本地缓存,目的是让 Chrome 启动得更快。
但是,通过对现实用户的崩溃数据和匿名性能指标进行持续的调查和分析,谷歌发现这种对内存历史的缓存不仅会增加代码复杂度和不必要的内存使用,还是导致浏览器关闭时挂起的主要原因:
Chrome 在关闭页面或浏览器时,在某些操作系统上(比较典型的是 Windows 7),当内存被其他应用占用时,后台优先级线程可能会长期缺乏 I/O ,导致关闭的页面/浏览器只是被挂起,而不是真正地关闭进程。随着时间的推移,这些 Chrome 进程会累积并消耗设备所有的内存,导致 Chrome 应用停止响应、崩溃和冻结。如果你使用的是 Chrome OS 或者Windows,Chrome被挂起甚至会导致无法关机,长时间卡在关机页面等待 Chrome 进程结束。
事实上,缓存机制本身也会引入一些新问题,比如代码复杂性、稳定性、内存消耗、数据一致性等,所以这个内存使用历史的本地缓存给用户带来的性能体验几乎是微乎其微,麻烦事倒是一大堆。这也导致谷歌在继续优化和移除之间,还是选择了后者。