gpt4 book ai didi

service-worker - 为什么网络优先策略比没有 Service Worker 慢?

转载 作者:行者123 更新时间:2023-12-03 09:00:27 28 4
gpt4 key购买 nike

在使用 Workbox 对 Service Worker 的性能进行基准测试时,我们发现了一个有趣的现象。

应用 Service Worker 时,Workbox 的网络优先策略比无 Service Worker 网络慢约 30 毫秒。然后,我们尝试跳过workbox并手动实现网络优先策略,速度慢了大约20ms。

我的猜测是,如果 Service Worker 启动,所有请求都必须由 JavaScript 代码处理。 JavaScript 代码的执行导致网络速度变慢。

然后,我检查了缓存优先策略,结果发现从缓存存储中获取内容比在没有 Service Worker 的情况下从磁盘缓存(http 缓存)中获取内容慢。

因此,根据我的理解,即使 Service Worker 为我们提供了对缓存的更多控制,但并不能保证缓存速度更快,对吧?

最佳答案

启动之前未运行的服务工作线程会产生相关成本。这可能约为数十毫秒,具体取决于设备。一旦该服务工作线程启动,如果它不通过缓存来处理您的导航请求(这几乎肯定是服务工作线程将收到的第一个请求),那么您最终的性能可能会比如果根本没有服务人员在场。

如果您要对抗缓存,那么拥有一个 Service Worker 应该会提供与在 HTTP 浏览器缓存实际运行后查找内容大致相同的性能,但需要承担相同的启动成本首先考虑。

使用 Service Worker 的真正性能优势来自于以缓存优先的方式处理 HTML 的导航请求,而传统上这不是 HTTP 缓存所能做到的。

您可以阅读有关这些权衡和最佳实践的更多信息“High-performance service worker loading”。

关于service-worker - 为什么网络优先策略比没有 Service Worker 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50938919/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com