Замедление PouchDB из-за количества магазинов на iOS - PullRequest
2 голосов
/ 24 марта 2020

В настоящее время я пишу гибридное приложение, которое использует IndexedDB + PouchDB для кэширования нескольких фрагментов информации с конечной точки REST. Каждая конечная точка сохраняется в хранилище PouchDB, поэтому такие магазины, как «/ location», «/ users», «/ products» и т. Д. c. Я заметил, что когда я начинаю открывать больше new PouchDB(name) s, мое приложение начинает замедляться на моем iOS устройстве, работающем iOS 13. На моем устройстве android 10 производительность моего приложения намного лучше, хотя все еще нет отлично.

При первом запуске приложения запускается несколько запросов на выборку для сохранения ответа требуемой конечной точки REST в разных хранилищах PouchDB (примерно около 60 или около того хранилищ).

При навигации по В приложении есть элементы, на которые можно нажать, чтобы получить дополнительную информацию об этом элементе. Дополнительная информация хранится в PouchDB, поэтому pouchDB.find() используется для извлечения данных из этого хранилища.

+-----------+------------+------------+
|  device   |   Launch   | navigation |
+-----------+------------+------------+
| ios13     | 13minutes  | 3.5seconds |
| android10 | 91seconds  | 0.6seconds |
+-----------+------------+------------+

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

Интересно, есть ли у кого-нибудь еще такой тип замедления, вызванный наличием нескольких хранилищ PouchDB? Если да, то были ли у вас какие-либо обходные пути или решения для устранения проблем с производительностью в нескольких магазинах на iOS?

...