IndexedDB性能随着IOS 13上对象存储的数量而下降

IndexedDB性能随着IOS 13上对象存储的数量而下降,ios,iphone,performance,safari,indexeddb,Ios,Iphone,Performance,Safari,Indexeddb,在测试我拥有的一款移动混合应用程序时,我注意到iOS上的性能比Android设备差得多。经进一步检查,IndexedDB似乎是我的大部分问题的根源。我还将PockDB与IndexedDB一起使用,但这里的测试结果是在纯IndexedDB中完成的 在一个测试中,我创建了一个objectStore,其中包含1000行简单数据(简单的键/值对)。我还以25为增量打开不包含文档的ObjectStore。在创建存储时,我还确保在dbRequest.onsuccuess中调用database.close()

在测试我拥有的一款移动混合应用程序时,我注意到iOS上的性能比Android设备差得多。经进一步检查,IndexedDB似乎是我的大部分问题的根源。我还将PockDB与IndexedDB一起使用,但这里的测试结果是在纯IndexedDB中完成的

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

测试只运行了
objectStore.get(key)
1000次。从每组数据中删除前10个外围值后,其值将写入此图

从这个图中可以看出,iOS 13上的IndexedDB的性能显著降低了我以线性速率打开的objectStores的数量。在iPhone Xs Max上iOS 13的150个objectStores上,我记录的时间是每
objectStore.get(key)
+40ms,而在我的Android设备上进行相同的测试时,记录的时间是一致的3ms。即使在iPhone 6上运行的iOS 12上,
objectStore.get(key)
仍然是一致的2.5ms。当我用更多的开销重新创建测试时,PockDB中也会出现同样的趋势

这个问题似乎同时影响了网络应用和混合移动应用。因为iOS 13上的设备和我的桌面Safari 13都有这个问题。 我想知道是否有其他人在iOS13设备和/或Safari 13上都遇到过这些性能问题,或者我只是做错了什么

编辑:

这是一张图表,其中包括PockDB的表现,这是引发我最初调查的原因。PockDB在iPhone Xs Max上完成PockDB.find()需要+130毫秒,桌面Safari 13需要+60毫秒


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