关于这个问题已经有了问题(What is it about web browser cache design that causes performance to degrade when the cache grows),但在这个问题上没有答案。所以这是我的三部分问题。
我能找到的最详细的解释是http://www.stevesouders.com/blog/2010/04/26/call-to-improve-browser-caching/,只是说
数据显示,55%的受访者拥有超过90%的缓存。
Google首次点击之一是http://www.nyu.edu/its/faq/cache.html:
随着时间的推移,当大量数据保存到硬盘驱动器时,此过程实际上可能会开始减慢浏览器的速度。
这似乎不足以解释。在我看来,新浏览器应该能够更好地管理缓存,但我也知道看似直观的事情往往不那么简单。缓存最终是否会达到类似于颠簸的状态,它会不断地从缓存中删除内容以将内容放入缓存中?
谢谢!
答案 0 :(得分:1)
据我了解,当浏览器缓存变为“完全”时,#34; - 因为浏览器分配了可用于缓存的可用空间量,所以它确实必须删除项目以用更新的资源替换它们。
当您第一次开始使用浏览器时,您的缓存是空的,并且您可以从缓存中获得最大速度。当它达到允许的最大大小时,您开始看到浏览器执行的工作比以前更多,因为它现在必须:
1)查找新资源的大小
2)检查可用空间量
3)如果还不够:
3A)它需要确定要删除哪些资源以腾出空间(不同的浏览器通常会以自己的方式执行此操作 - 例如,它可能会删除您不经常访问的网站的资源,其他人可能采取这种方法删除最旧的文件等)。
3B)从缓存中删除这些文件
4)将新资源保存到缓存
这可能因为网站的设计方式使得它们通常在完成加载后拉入资源,一次又一次地启动缓存清理过程作为新资源(如AJAX请求,图像和喜欢得到"懒惰加载"到页面上。
还有一个事实是,网站通常由许多较小的对象构成,例如图像,javascript和amp; CSS文件 - 从硬盘(特别是机械,非SSD)获取越来越多的文件时存在一些继承延迟,这也可能使缓存过程复杂化。