У меня есть рабочая страница с wasm, которая компилируется на Chrome
за 5 секунд. Я следую за этой статьей:
https://v8.dev/blog/v8-release-75#implicit-caching
о неявном кешировании, чтобы заставить кеш работать для второй перезагрузки. Каждый раз, когда я перезагружаю страницу, на компиляцию уходит 5 секунд.
Я использую WebAssembly.instantiateStreaming
, чтобы получить ответ выборки.
Используя Chrome DevTool
, я вижу, что сервер return 304
(но статус объекта извлечения 200
)
wasm
размер 3,5 мегагерца, и сервер возвращает правильный заголовок Content-Type: application/wasm
.
Когда я использую трассировку
https://v8.dev/blog/wasm-code-caching#tracing
для отладки V8 behaviour
, я вижу, что он пишет в кэш v8.wasm.cachedModule
, но никогда не читает его. Я не получаю v8.wasm.moduleCacheHit
ни v8.wasm.moduleCacheInvalid
так как каждый пробег - холодный.
Включение WebAssembly compiled module cache
не имеет никакого эффекта.
(async () => {
const fetchPromise = fetch('mybig.wasm');
const { instance } = await WebAssembly.instantiateStreaming(fetchPromise, importObject);
console.log(instance);
})();
Я не получаю никакой ошибки, и все работает как положено, но без кэширования.