首页 > 解决方案 > webassembly 加载时间过长

问题描述

我正在使用.wasm格式的人脸检测模型。我正在用 JavaScript 阅读和执行它。一切正常。但是使用数组缓冲区输出完成该WebAssembly.instantiate()方法需要太多时间。

wasm文件大小为 8.6MB,加载文件后需要 3 秒才能完成执行。

应用程序加载时间因此而延迟。有什么办法可以减小.wasm文件大小或提高文件执行时间?

任何帮助表示赞赏。

标签: javascriptperformancewebassembly

解决方案


WebAssembly.instantiate()不是官方推荐的方式。

使用较新的WebAssembly.instantiateStreaming(). 这将更有效地加载 wasm 文件。请注意,您应该使用fetch()ArrayBuffer 之外的响应对象来加载 wasm 文件。

此外,8.6MB 对于一个 wasm 文件来说是相当大的。所以你可能仍然觉得加载有点慢。您是否使用优化标志编译了项目?


推荐阅读