Eri*_*rik 11 caching rendering google-chrome
除了浏览器缓存之外,还有一些浏览器缓存数据的方式.对于Chrome,渲染引擎Blink中还有另一个缓存,可将图像,样式,脚本和字体(可能更多)存储在内存中.
此缓存用于站点上的连续导航.从Blink缓存传递的资源(from memory cache)在网络选项卡中标记.从浏览器缓存提供的资源标记为(from disk cache).
我现在的问题是,哪些资源存储在这个非常快的缓存中?从我的测试来看,它变化很大:
磁盘缓存命中和内存缓存命中之间的一个巨大差异与Service Workers结合使用.在服务工作者中无法观察到由内存缓存提供的请求(因为缓存位于服务工作者之前).磁盘缓存提供的请求通过Service Worker(因为浏览器缓存位于Service Worker后面).
为了显示解释的行为,我构建了一个包含所有资源类型的测试页面:https://dm-clone-optimized.app.baqend.com/
您可以使用顶部的链接浏览站点,并观察请求在网络选项卡和控制台中的行为方式.每个页面加载相同的资源.
经过一些导航(Chrome 70.0.3538.67)之后,我大部分时间都会遇到这种情况:

scripts.js,并scripts2.js从内存中缓存logo.png也来自内存styles.css来自磁盘缓存 :(scripts2.js?id=1也来自磁盘缓存 :(我很想了解Blink内存缓存是如何工作的,以及如何调整我的网站以将其用于具有适当cache control标头的所有资源.
----编辑----
最让我担心的是:为什么动态添加的脚本根本没有缓存?这对框架有明显的影响,scripts.js因为它们将所有依赖项作为动态添加的脚本标记插入.
小智 2
Blink 内存缓存有效
\n\nBlink 有四个内存分配器\n PartitionAlloc、Oilpan、tcmalloc和system allocator
因此,Chrome Blink 的开发团队已将 tcmalloc和system allocators从 Blink 中删除
Blink (PartitionAlloc+Oilpan) 是渲染器\xe2\x80\x99s 内存的第二大消耗者,典型情况下消耗 10 - 20%,并在 Discardable、CC 和 V8 中保留部分内存
\n\n在 Blink 内部,主要的内存消耗者是:
\n\n建议是:“识别对 Blink\xe2\x80\x99s 总内存有影响的缓存并purgeMemory()仅对其实施。 ”
他们正在努力摆脱“ DiscardableMemory”项目,这将有助于执行诸如强制分离所有布局对象之类的操作,从而释放布局树保留的内存。
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |