gpt4 book ai didi

java - RealmResult 通过数千个对象的迭代很慢

转载 作者:行者123 更新时间:2023-12-01 19:41:46 25 4
gpt4 key购买 nike

我有一个项目,我请求获取一些对象。这是我进行一些测试后最快的实现,但我觉得我错过了一些东西。我的数据库中有 2000 个对象用于测试,计算之前的代码需要 3.25 秒才能执行。

    val allSessions = realm.where(Session::class.java).isNotNull("endDate").findAll()

// added for better performances
val sessionsList = realm.copyFromRealm(allSessions)

val sessionGroup1 = mutableListOf<Session>()
val sessionGroup2 = mutableListOf<Session>()

// otherwise the bottleneck is here, the foreach is slow
sessionsList.forEach { session ->
if (session.isGroup1()) {
sessionGroup1.add(session)
} else {
sessionGroup2.add(session)
}
}

// doComputations(), like sums, averages...

我必须访问所有对象的值才能执行求和、求平均值等操作。最快的方法是什么?

最佳答案

尝试使用注释将 endDate 字段设置为索引字段。

来自 documentation :

Like primary keys, this makes writes slightly slower , but makes reads faster. (It also makes your Realm file slightly larger, to store the index.) It’s best to only add indexes when you’re optimizing the read performance for specific situations.

import io.realm.annotations.Index;
@Index
private String endDate;

关于java - RealmResult 通过数千个对象的迭代很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55169250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com