У меня есть большой массив json-объектов, которые я храню в одной редукционной переменной (~ 8 тыс. Элементов, каждый с объектом по 1 килобайту каждый на общую сумму 8 МБ). Похоже, что это делает медленные вызовы медленным, даже для самых тривиальных действий, и редукторов, которые ничего не делают. Например, при вызове этого действия doNothing()
и редуктора время ожидания устройства составляет 500 мс без запуска в отладчике:
// action
export const doNothing = () => {
return {
type: DO_NOTHING
};
};
// reducer
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case DO_NOTHING: {
return state;
}
default:
return state;
}
};
Моя лучшая попытка профилировать эту проблему - через медленный журнал, где я нашел цифру 500 мс для вызова избыточности в моем компоненте реакции. Для меньшего набора данных (~ 500 элементов) я все еще получаю ожидание, но оно ближе к 100 мс. Это все на устройстве, и оно замедляется на симуляторе и отладчике. Я тестирую это на простом представлении с помощью всего лишь кнопки, чтобы исключить сложности от дорогого повторного выбора и повторного рендеринга. Возможное осложнение заключается в том, что я использую redux-offline
, который сохраняет хранилище с избыточностью в AsyncStorage, однако при отключении сохранения у меня получается идентично низкая производительность.
В идеале я обращаюсь к узким местам напрямую, но я также открыт для обходных путей. Я попытался обернуть вызовы действий в setTimeout, но это, похоже, задерживает замедление в моем собственном приложении.
Заранее спасибо за любые предложения!