gpt4 book ai didi

javascript - WebAssembly 隐式缓存在 Chrome 75 上不起作用

转载 作者:行者123 更新时间:2023-11-30 06:14:33 28 4
gpt4 key购买 nike

我有一个使用 wasm 的工作页面,在 Chrome 上编译需要 5 秒。我正在关注这篇文章:

https://v8.dev/blog/v8-release-75#implicit-caching

关于隐式缓存以使缓存为第二次重新加载工作。当我每次重新加载页面时需要 5 秒来编译。

我正在使用 WebAssembly.instantiateStreaming 获取获取响应。使用 Chrome DevTool 我可以看到服务器返回 304(但获取对象的状态为 200)

wasm 大小为 3.5 兆,服务器返回正确的 Content-Type header :application/wasm

当我使用跟踪时

https://v8.dev/blog/wasm-code-caching#tracing

为了调试 V8 行为,我可以看到它写入缓存 v8.wasm.cachedModule 但从未读取它。我没有得到 v8.wasm.moduleCacheHit 也没有 v8.wasm.moduleCacheInvalid因为每次运行都是冷运行。

启用WebAssembly 编译模块缓存没有效果。

(async () => {
const fetchPromise = fetch('mybig.wasm');
const { instance } = await WebAssembly.instantiateStreaming(fetchPromise, importObject);
console.log(instance);
})();

我没有收到任何错误,一切都按预期工作,但没有缓存。

最佳答案

这是 chrome 75 中的一个错误。我编译的 webassembly 是 46 兆,它写入跟踪 v8.wasm.cachedModule 但未能真正将其添加到缓存中。使用 Chrome 77 解决了这个问题。

https://bugs.chromium.org/p/chromium/issues/detail?id=719172#c63

关于javascript - WebAssembly 隐式缓存在 Chrome 75 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56984394/

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