调用 PublishSubject.onNext() 和接收它之间的 Rx 间隔很长
Rx Interval between calling PublishSubject.onNext() and receiving it is long
在后台线程中我调用 PublishSubject.onNext();
并在主线程中通过 subscribe(PublishSubject.filter(message -> message.getId() == id), this::onMessageInserted);
接收它。平均持续时间约为 20 毫秒。有什么办法可以缩短这个时间吗?
我们使用
'io.reactivex:rxjava:1.2.5'
'io.reactivex:rxandroid:1.2.1'
我不认为这是可能的。
主要问题是使用主循环程序从后台向主线程传递项目。
它执行所有系统操作,例如布局、绘图、调用生命周期方法,并且在循环器完成所有这些操作后,它运行添加到其队列中的操作。
当你使用一些调度器切换到主线程时,每次它得到一个项目它会添加runnable到looper队列,但是你可以看到runnable不会立即被调用,而是在Loopers的末尾循环。
20ms接近平均绘制时间(主looper工作的频率)
在后台线程中我调用 PublishSubject.onNext();
并在主线程中通过 subscribe(PublishSubject.filter(message -> message.getId() == id), this::onMessageInserted);
接收它。平均持续时间约为 20 毫秒。有什么办法可以缩短这个时间吗?
我们使用
'io.reactivex:rxjava:1.2.5'
'io.reactivex:rxandroid:1.2.1'
我不认为这是可能的。
主要问题是使用主循环程序从后台向主线程传递项目。
它执行所有系统操作,例如布局、绘图、调用生命周期方法,并且在循环器完成所有这些操作后,它运行添加到其队列中的操作。
当你使用一些调度器切换到主线程时,每次它得到一个项目它会添加runnable到looper队列,但是你可以看到runnable不会立即被调用,而是在Loopers的末尾循环。
20ms接近平均绘制时间(主looper工作的频率)