Визуализация данных ImmutableJS из хранилища Redux в виде графика

Я работаю над приложением React и Redux, которое использует ImmutableJS для хранения всего своего состояния. Приложение получает данные от датчика с частотой около 100 Гц. Мне нужно нарисовать график, который обновляется в режиме реального времени и отображает эти данные. Я использовал React-Vis для графа, проблема в том, что он принимает массив объектов, а не структуру данных ImmutableJS.

Я решил это, преобразовав структуру данных ImmutableJS в массив, например так:

const data = this.props.HEGPercentage.toIndexedSeq().toArray()

Это работает, но проблема, с которой я сталкиваюсь, заключается в огромном лаге, если я запускаю это с реальными данными, я думаю, потому что он должен постоянно создавать новый массив.

Как я могу создать высокопроизводительное решение для этого и все еще использовать ImmutableJS?

1 ответ

Преобразование между простыми объектами JS и объектами Immutable.js может быть очень дорогим. В частности, fromJS() а также toJS() операции являются самыми дорогими операциями в библиотеке Immutable.js, и их следует избегать, насколько это возможно (особенно в Redux mapState функции).

Похоже, вы уже хотя бы на правильном пути. Используйте запомненные селекторы, чтобы сократить дорогостоящие преобразования, попробуйте округлить эти числа, если это возможно, чтобы было меньше бессмысленных изменений, и сократить общее количество обновлений в целом.

В моем списке ссылок React/Redux есть большой раздел статей по повышению производительности для React, Redux и Immutable.js, которые могут оказаться полезными.

Также стоит отметить, что я лично советую не использовать Immutable.js по разным причинам.

Другие вопросы по тегам