成本在RxJava线程切换和科特林数据类副本()操作
我的问题是关于特定操作的成本科特林数据类copy()
操作和RxJavaobserveOn()
线程切换的成本。成本在RxJava线程切换和科特林数据类副本()操作
我有一个系统产生事件,比如说Schedulers.mainThread
。事件是Kotlin数据类别。接下来是业务逻辑,最后,链条产生新的数据类别通过copy()
操作。所有结果必须在Schedulers.mainThread
上消耗。因此,链看起来就像是:
eventSource() //Events are produced on Schedulers.mainThread .observeOn(Schedulers.computation)
.map { event ->
other business logic
event.copy(...)
}
.observeOn(Schedulers.mainThread)
.subscribe(eventConsumer)
因此,这个问题是值得被observeOn
这样的操作切换调度为copy()
如果事件类已经让我们说15场。应该提及的是,Schedulers.mainThread
是用于呈现UI的线程,并且最好是尽可能空置。
回答:
copy
只是调用默认参数的数据类的构造函数对于那些你没有通过,即
event.copy(field3 = "")
相同
Event(event.field1, event.field2, "", event.field4, ...)
它本身是不太值得切换调度程序,但当然“其他业务逻辑”可能是,如果你有
event.copy(field3 = complexCalculation())
您需要考虑complexCalculation()
的成本。
以上是 成本在RxJava线程切换和科特林数据类副本()操作 的全部内容, 来源链接: utcz.com/qa/265100.html