首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GeoFire查询需要几分钟时间才能响应并导致内存泄漏

GeoFire查询需要几分钟时间才能响应并导致内存泄漏
EN

Stack Overflow用户
提问于 2016-04-26 23:58:51
回答 1查看 189关注 0票数 0

我和GeoFire有一个非常奇怪的问题。我敢打赌,我在某个地方引起了一个问题,但现在,由于代码更改的数量非常有限,出现了两个主要问题:

1) GeoFire GFQuery需要很长时间才能响应。GFQuery花了3分钟多的时间才最终返回位于300米小圆圈中的唯一密钥。我为开始这个查询而添加的唯一代码是:

代码语言:javascript
复制
if (!self.circleQuery) {

    GeoFire *geoFire = [FirebaseUtils GEOFIRE_REF];

    self.circleQuery = [geoFire queryAtLocation:center withRadius:0.3];


    [self.circleQuery observeEventType:GFEventTypeKeyEntered withBlock:^(NSString *key, CLLocation *location) {



    }];
    [self.circleQuery observeEventType:GFEventTypeKeyExited withBlock:^(NSString *key, CLLocation *location) {

    }];
    [self.circleQuery observeEventType:GFEventTypeKeyMoved withBlock:^(NSString *key, CLLocation *location) {

    }];

} else if (![self.circleQuery.center isEqual: center]){
    self.circleQuery.center = center;
}

2)由于只添加了上面的代码,我看到了一个严重的内存泄漏,不幸的是仪器没有捕捉到。正常情况下,当应用程序启动时,它会在内存中空闲大约8-9 mgbts。在添加了Geofire代码后,我看到了一个稳定的增长,它将继续增长。我隐藏了所有的更改以删除任何geofire代码,它删除了泄漏,所以我知道这与此有关。我有一种感觉,我的两个问题都是非常相关的。

在这方面的任何帮助或想法都将非常感谢!

更新:似乎无论我在做什么,都会阻止Firebase进行其他更新。在实现此代码时,如果我直接删除firebase上的一个子级,它无法立即弹出通常会弹出的childRemoved通知。

EN

回答 1

Stack Overflow用户

发布于 2016-04-27 04:09:39

在进一步的实验之后,我发现如果你仅仅基于对基本url的Firebase引用来构建GeoFire,那么它根本不能很好地工作。通过在url后面加上"/geofire",或者其他你想叫它的东西,我所有的问题都消失了:)。我最初使用基本url的原因是,geofire (cocoapods & github)上的所有iOS文档都引用了基本url,并且没有提到要为GeoFire创建单独的节点。对我来说,这应该使clear...memory泄漏,3分钟的响应时间是一个大问题。

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

https://stackoverflow.com/questions/36870067

复制
相关文章

相似问题

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