Реагировать приложение с WebAssembly медленно в Chrome, но быстро в Firefox.Зачем? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть пример кода моделирования, написанного на Rust, который компилируется в WebAssembly.Я создал небольшое приложение React, которое отображает данные, извлекаемые из WebAssembly для каждого обновления.

При запуске этого кода в Chrome наблюдаются «паузы», из-за которых приложение немного нервно.Запуск приложения в Firefox намного быстрее и плавнее.

chrome-vs-firefox

(Chrome слева, Firefox справа)

Когда я профилирую код в Chrome с помощью инструментов разработчика, я вижу, что мой код имеет тенденцию «простаивать»:

chrome-profiler

Увеличение масштабачасть графика производительности, где происходит пауза:

zooming-in-on-performance-graph

Здесь я вижу, что браузер находится в состоянии «Fire Idle Callback», который включает в себявызов flushBufferWhileIdle.

Почему это происходит в Chrome, а не в Firefox?Есть ли у вас какие-либо мысли о том, как я могу определить, связана ли проблема с React / JavaScript или WebAssembly?

Спасибо !!

...