我在iOS项目中使用Firebase实时数据库。我收到越来越多的用户关于我的应用消耗大量电池的报告,并且最近做了一些分析。在我的设备上,该应用程序一次使用100%CPU和超过0.5 Gb内存(并且正在增长)几分钟 - Time Profiler建议其Firebase是罪魁祸首,在{{{{{{{{{{{{{{{{{{{ 1}}方法([FRepo restoreWrites]
中的3.22分钟)。这是在启用持久性的情况下进行的。
我挖掘了[FCompoundWrite addWrite:atPath:]
的代码,它的性能似乎与restoreWrites
条记录的数量有关。 userWrites
出现在大约75,000(并且每次启动应用程序时都会增长) - 是否有多少写入已保留到磁盘但尚未写入服务器?或者这是所有用户的记录总数?我不知道。但无论哪种方式,它都在不断增长并导致大规模的性能问题。
这是不可避免的,也是迁移到FireStore的理由?或者这是错误的我正在做的那是可以修复的吗?
以下是完整的个人资料信息,向您展示我在说什么:
[[[[[[reference repo] persistenceManager] storageEngine] writesDB] allKeys] count]