成本在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

回到顶部