首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >慢速addSnapshotListener响应+高CPU使用率

慢速addSnapshotListener响应+高CPU使用率
EN

Stack Overflow用户
提问于 2017-11-16 07:17:50
回答 1查看 287关注 0票数 0

在一个标准的聊天应用程序中,我的客户首先寻找订阅的聊天室,

然后听所有聊天室的数据。假的:

代码语言:javascript
复制
db.collection('chatrooms').where('members.\(mySelf)',1)
.addSnapshotListner(chatRooms) {

   chatRooms.forEach { room in 

       room.collection('messages').addSnapshotListener() { ... }

   }

}

这会使大约10个聊天室的CPU峰值达到100%,持续10秒左右。我已经证实,即使在内部快照侦听器回调中根本不执行代码时,这种情况仍然会发生--即订阅本身是资源密集型的。

--重要的是,当我关闭离线持久性时,addSnapshotListener正常运行,并且不使用大量的CPU资源。

我不知道我是以错误的方式设计了这个程序,还是这可能是一个bug?

我试图达到一种行为,用户只需打开应用程序,进入第一个聊天室,并尽快看到消息。

我尝试过的另一种方法是,每当用户单击时,都会监听每个聊天室,但是即使初始数据快照来自本地缓存,在用户看到任何数据之前,加载所有数据(messages子集合+ members子集合)仍然需要大约0.5到1.0秒的时间。

我正在使用0.9.2 Swift SDK。

更新:这只发生在iOS 10中,在iOS 11中它运行良好的

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 21:51:22

我在你的片段里看到一个错误

代码语言:javascript
复制
db.collection('chatrooms').where('members.\(mySelf)',1)
.addSnapshotListner(chatRooms) {

   chatRooms.forEach { room in 

       room.collection('messages').addSnapshotListener() { ... }

   }

}

它是编写的Listner而不是侦听器(第二行)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47323742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档