Почему React Native AsyncStorage так медленно работает на моем телефоне?

У меня проблема с приложением, которое я разрабатываю с помощью Expo - React Native. Проблема в том, что при наличии только одного небольшого значения, хранящегося в AsyncStorage, его загрузка занимает около 25 секунд. Вот подробности:

Expo: Версия 33

Ract Native (comes with Expo): 0.59.8

My stored values: {keyOne: "ValueOne"}

Это только пример для тестирования, очевидно, что в реальном приложении у меня больше значений. Код, который я использую для тестирования внутри App.js:

async componentDidMount(){
    console.log("Storing value...");
    await AsyncStorage.setItem("keyOne", "valueOne");
    console.log("Value stored");
    var value1 = await AsyncStorage.getItem("keyOne");
    console.log("Obtained value: "+value1);
}

С этим кодом 25 seconds тратят на хранение предмета.

Я столкнулся с этой проблемой особенно в телефонах Samsung, например Galaxy S7 SM-g930F. Это происходит при разработке и производстве приложения.

Кроме того, если я сохраню больше значений, первое, что я получу, будет медленным, а остальные - очень быстрыми.

Еще одна деталь заключается в том, что если я сделаю тот же тест с SecureStore, он будет очень быстрым. Могу ли я сделать что-нибудь, чтобы ускорить процесс?
Альтернатива AsyncStorage?


person Perez Sebastián    schedule 30.09.2019    source источник
comment
Неплохо. Я нашел здесь действительно хорошую статью, в которой есть некоторые рекомендации по оптимизации производительности medium.com/@Sendbird/   -  person Rigorous implementation    schedule 01.10.2019
comment
@Rigorousimplementation Я наткнулся на эту статью. Но у меня проблемы с сохранением только одного ключа. Так что они не кажутся проблемами оптимизации.   -  person Perez Sebastián    schedule 01.10.2019
comment
Можете ли вы проверить свою проблему с помощью Expo Snack: snack.expo.io/@emanuelenardi/async-storage попробуйте изменить версии sdk, вы получите ту же проблему с производительностью 33-35.   -  person Oleg    schedule 01.10.2019
comment
Вы придумали способ ускорить загрузку AsyncStorage? Даже в конце 2020 года все еще медленно   -  person Nathileo    schedule 22.12.2020


Ответы (1)


Обязательно выполните следующие действия.

  1. Обновите встроенную версию react до 0.59.5 +
  2. Не импортируйте {AsyncStorage} из react-native (так как сейчас он устарел)
  3. Используйте этот пакет вместо Асинхронного хранилища
  4. Импортируйте как этот импорт AsyncStorage из '@ response-native-community / async-storage';
person Abdul Basit    schedule 01.10.2019
comment
Привет, я использую Expo с React Native. Поэтому я не могу использовать Community Async-Storage из-за невозможности установить ссылку. Пробовал использовать безуспешно. Кроме того, я читал, что библиотека, по сути, такая же, но React Native вынес ее на внешний вид. - person Perez Sebastián; 01.10.2019