1KBを超える文字列をAsyncStorageに保存してはいけない。

1KBを超える文字列は、読み出しに時間が掛かりすぎるので避けたほうが良い。

AsyncStorageにダウンロードした画像をbase64で保存して、次回からキャッシュから取り出すみたいな事をやってる人も多いんじゃないかな。

ただ、iOSの場合は、1KB以下の文字列はオンメモリで持つようになっているので高速に読み取れますが、それを超える文字列は別ファイルに保存され、毎回読み取り(File Read)が発生する。

一応、その対策として2MBのキャッシュもあって、1回目のファイル読み取り後はキャッシュに乗るようになってますが、それも超えると、まったくキャッシュにヒットしない。

探索順: オンメモリ(Dictionary) -> 2MBキャッシュ -> File Read

コード: https://github.com/react-native-community/async-storage/blob/b04ffbf1b80bdf5295cb36c21fc5ca62a7333e3c/ios/RNCAsyncStorage.m#L384

AsyncStorageをキャッシュとして使う場合、低速だと意味がないので、1KB以下の文字列にした方が良いかと思います。