使用 WebAssembly 的 React 应用程序在 Chrome 中很慢,但在 Firefox 中很快。为什么?

Ste*_*vak 6 firefox google-chrome reactjs webassembly

我有一些用 Rust 编写的示例模拟代码,可以编译为 WebAssembly。我构建了一个小型 React 应用程序,它为每次更新呈现从 WebAssembly 获取的数据。

在 Chrome 中运行此代码时,我观察到导致应用程序有点紧张的“暂停”。在 Firefox 中运行该应用程序更快、更流畅。

chrome-vs-firefox

(左边是 Chrome,右边是 Firefox)

当我通过 Chrome 的开发人员工具在 Chrome 中分析代码时,我发现我的代码倾向于“空闲”:

铬分析器

放大性能图中发生暂停的部分:

放大性能图

在这里我可以看到浏览器处于“Fire Idle Callback”状态,其中包括对“flushBufferWhileIdle”的调用。

为什么这会发生在 Chrome 而不是 Firefox 中?对于我如何确定问题是由 React/JavaScript 还是 WebAssembly 引起的,您有什么想法吗?

谢谢!!