Performance 臃肿的缓存存储是否会降低服务人员的响应速度?

Performance 臃肿的缓存存储是否会降低服务人员的响应速度?,performance,service-worker,workbox,cachestorage,Performance,Service Worker,Workbox,Cachestorage,我在SW中缓存不透明的响应,它将CacheStorage以指数方式膨胀到6 GB+。有时,我看到软件响应比浏览器缓存的响应慢。 在通过软件为请求提供服务时,臃肿的缓存存储是否会导致读取速度变慢,从而降低性能?这种性能有多少是由机器所装载的硬盘驱动的——SSD与HDD PS:我知道理想的修复方法是要么修复不透明的响应,要么根本不缓存它们 缓存存储API为您提供了对缓存过期的编程控制,并允许您在JavaScript中使用缓存响应来构建独立于网络工作的复杂服务/回退策略,这通常在仅使用浏览器的HTTP

我在SW中缓存不透明的响应,它将
CacheStorage
以指数方式膨胀到6 GB+。有时,我看到软件响应比浏览器缓存的响应慢。
在通过软件为请求提供服务时,臃肿的缓存存储是否会导致读取速度变慢,从而降低性能?这种性能有多少是由机器所装载的硬盘驱动的——SSD与HDD


PS:我知道理想的修复方法是要么修复不透明的响应,要么根本不缓存它们

缓存存储API为您提供了对缓存过期的编程控制,并允许您在JavaScript中使用缓存响应来构建独立于网络工作的复杂服务/回退策略,这通常在仅使用浏览器的HTTP缓存时是不可能的

不过,使用缓存存储API不会比HTTP缓存更快,这并没有什么特别的期望


每当运行service worker代码时,都会涉及一定程度的开销,有关该开销影响的详细信息可能会根据存储介质、CPU、浏览器版本和任何数量的其他条件而有所不同。我要说的是,我不相信当涉及到运行时性能时,这些不透明的响应会起到如此重要的作用,而额外的配额使用实际上是“虚构的”。它只是转换为计算可用配额时使用的更高数字,但实际上不会导致更多数据写入磁盘。

缓存存储API为您提供对缓存过期的编程控制,并且允许您在JavaScript中使用缓存响应来构建独立于网络的复杂服务/回退策略,这通常在仅使用浏览器的HTTP缓存时是不可能的

不过,使用缓存存储API不会比HTTP缓存更快,这并没有什么特别的期望


每当运行service worker代码时,都会涉及一定程度的开销,有关该开销影响的详细信息可能会根据存储介质、CPU、浏览器版本和任何数量的其他条件而有所不同。我要说的是,我不相信当涉及到运行时性能时,这些不透明的响应会起到如此重要的作用,而额外的配额使用实际上是“虚构的”。它只是转换为计算可用配额时使用的更高数字,但实际上并不会导致更多数据写入磁盘。

不透明响应是模糊代码,因此,是的,它可能会减慢软件速度,因为它需要“读取”模糊数据,以了解您是否需要该文件。不透明响应是模糊代码,所以,是的,它可能会减慢你的软件速度,因为它需要“读取”目标数据,以了解它是否是你需要的文件。谢谢杰夫!缓存不透明响应会使我们面临存储配额不足的风险,从而阻止进一步缓存资源,这是有道理的。说到存储介质,这是否意味着如果我们有两台配备SSD和HDD的机器,软件响应速度会比SSD中的网络快,但在配备HDD的机器中会慢?我们总是从磁盘读取数据吗?或者是通过在内存中引入缓存存储数据进行了一些优化?我认为如果使用SSD而不是HDD,那么一切都会更快。即使是表面上应该在内存中的东西,作为虚拟内存方案的一部分,也会相当频繁地被分页到磁盘上,对吗?但是这里有太多的变数,我觉得没有资格权威地谈论很多场景。正确!我想知道缓存在引擎盖下是如何工作的可能会帮助我们揭开一些秘密。(请记住,Firefox、Safari和Chrome/Edge都支持服务人员+缓存存储API,但它们都有非常不同的代码基。因此,即使您了解了一个实现,您的观察结果也不一定适用于其他浏览器。)谢谢Jeff!缓存不透明响应会使我们面临存储配额不足的风险,从而阻止进一步缓存资源,这是有道理的。就存储介质而言,这是否意味着如果我们有两台带有SSD和HDD的机器,SW响应会比SSD中的网络快,但在带有HDD的机器中会慢?我们是否总是从中读取m磁盘?或者通过在内存中引入缓存存储数据进行了一些优化?我认为如果使用SSD而不是HDD,一切都会更快。即使表面上应该在内存中的东西也会作为虚拟内存方案的一部分被相当频繁地调出到磁盘,对吗?但实际上有太多的变量在这里玩游戏,我觉得我没有资格与权威人士谈论许多场景。正确!我认为了解CacheStorage如何在引擎盖下工作可能有助于我们揭开一些秘密。(请记住,Firefox、Safari和Chrome/Edge都支持服务人员+缓存存储API,但它们都有非常不同的代码基。因此,即使您了解了一个实现,您的观察结果也不一定适用于其他浏览器。)