IndexedDB性能随IOS 13上的objectStore数量而降低

问题描述 投票:1回答:1

[在测试我拥有的移动混合应用程序时,我注意到与Android设备相比,iOS的性能要差得多。经过进一步检查,似乎IndexedDB引起了我的大部分问题。我还将PouchDB与IndexedDB一起使用,但是此处的测试结果是在纯IndexedDB中完成的。

在测试中,我创建了1个objectStore,其中包含1000行简单数据(简单键/值对)。我还打开了不包含以25为增量的文档的objectStores。在进行存储时,我还要确保在database.close()中调用dbRequest.onsuccuess,以防万一保持打开状态会引起任何问题。 (不确定我是否需要)

该测试仅运行objectStore.get(key) 1000次。从每组数据中删除前10个离群值后,将其纳入此图中。

Performance Chart of different devices using IndexedDB

从这张图可以看出,iOS 13上的IndexedDB的性能大大降低了我以线性速率打开的更多objectStores。在iPhone Xs Max上的iOS 13的150个对象存储中,每objectStore.get(key)记录的时间为+ 40ms,其中在同一测试的Android设备上,记录时间为3ms。即使在运行iPhone 6的iOS 12上,objectStore.get(key)仍然是2.5毫秒。当我以更多的开销重新创建测试时,PouchDB中也会出现相同的趋势。

似乎该问题同时影响了Web应用程序和混合移动应用程序。由于在iOS 13设备上以及我的桌面Safari 13中都存在此问题。我想知道是否还有其他人在iOS13设备和/或Safari 13上都遇到了这些性能问题,或者我到底是在做错什么?

编辑:

这里的图表包含了PouchDB的性能,这引起了我的初步调查。 PouchDB在iPhone Xs Max上花了+130毫秒来完成pouchDB.find(),而在桌面Safari 13上花了+60毫秒。]

Performance Chart of Different devices with IndexedDB and PouchDB

[在测试我拥有的移动混合应用程序时,我注意到与Android设备相比,iOS的性能要差得多。经过进一步检查,似乎IndexedDB导致了...

ios iphone performance safari indexeddb
1个回答
0
投票

Safari 13.4更新解决了indexedDB性能问题。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.