【发布时间】:2019-03-14 18:03:08
【问题描述】:
我有一个项目,我请求获取一些对象。这是我进行一些测试后最快的实现,但我觉得我错过了一些东西。我在数据库中有 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...
我必须访问所有对象的值以执行求和、平均等。 最快的方法是什么?
【问题讨论】:
-
你为什么要从 Realm 复制它们? :o
-
这是我目前最胖的实现。否则,我在 RealmResult 对象上有一些非常慢的 foreach
-
那意味着你使用了很多项目,我猜没有更多的事情要做
-
我对性能不太熟悉,但感觉很慢
-
@Aks4125 这完全取决于你想要做什么。
标签: java android performance kotlin realm