У меня есть пример кода моделирования, написанного на Rust, который компилируется в WebAssembly.Я создал небольшое приложение React, которое отображает данные, извлекаемые из WebAssembly для каждого обновления.
При запуске этого кода в Chrome наблюдаются «паузы», из-за которых приложение немного нервно.Запуск приложения в Firefox намного быстрее и плавнее.
![chrome-vs-firefox](https://i.stack.imgur.com/O9l5C.gif)
(Chrome слева, Firefox справа)
Когда я профилирую код в Chrome с помощью инструментов разработчика, я вижу, что мой код имеет тенденцию «простаивать»:
![chrome-profiler](https://i.stack.imgur.com/S3eQU.png)
Увеличение масштабачасть графика производительности, где происходит пауза:
![zooming-in-on-performance-graph](https://i.stack.imgur.com/uY7bx.png)
Здесь я вижу, что браузер находится в состоянии «Fire Idle Callback», который включает в себявызов flushBufferWhileIdle.
Почему это происходит в Chrome, а не в Firefox?Есть ли у вас какие-либо мысли о том, как я могу определить, связана ли проблема с React / JavaScript или WebAssembly?
Спасибо !!