发布
社区首页 >问答首页 >领域iOS:用绑定的数据库启动领域的代价有多大?

领域iOS:用绑定的数据库启动领域的代价有多大?
EN

Stack Overflow用户
提问于 2018-06-06 03:32:41
回答 1查看 164关注 0票数 0

我使用领域作为我的项目,我需要查询一个非UI阻塞线程的结果列表(即。(背景),只读;我查阅了领域的文档,似乎需要在被查询的同一个线程中创建领域实例,所以我想知道,如果每次重新创建王国对象,代价会有多大?

代码语言:javascript
代码运行次数:0
复制
@IBAction func scoreAction(_ sender: Any?) {
    DispatchQueue.global(qos: .background).async }
        let scores = loadScore()
        DispatchQueue.main.async {
            display(scores)
        }
    }
}

然后:

代码语言:javascript
代码运行次数:0
复制
func loadScore() -> [Score] {
    let realm = try! Realm(configuration: config)
    return realm.objects(Score.self).filter("some criteria")
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 14:20:18

调用Realm的初始化程序实际上并不会创建新的数据库,它只是在Realm初始化器中使用的RealmConfiguration中指定的位置创建对现有领域数据库的新引用。这意味着,通常情况下,一旦数据库打开,通过调用Realm()Realm(configuration: config)来创建对数据库的新引用在计算上并不昂贵。因此,一般来说,在线程之间切换时创建一个对您的领域的新引用通常更有意义。

当然,要确定哪一种方式更适合您的特定用例,您实际上需要在真正的设备上运行测试,但是只要您不频繁地在线程之间切换(比如在一秒钟内切换几次),那么在这两个线程之间切换之后,您应该可以在两个线程上创建一个新的领域引用。

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

https://stackoverflow.com/questions/50711871

复制
相关文章

相似问题

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