[英]How long did it take to run an Observable using RxJava (ReactiveX)?
我正在使用Scala Play Framework 2.5中的java ReactiveX(RxJava)來與Couchbase進行異步通信,我想知道我的Observable運行多長時間了嗎? 我使用以下代碼定義可觀察的對象。
def get(id: String) : Observable[Profile] = {
this.bucket
.async()
// can I have a start time here possibly using map?
.get(id)
.map[Profile](toProfile)
// can I have an end time here possibly using map?
}
我用以下方式稱呼它
Thread.sleep(1000)
val observable = get("myID")
Thread.sleep(1000)
// measure start time here
println("observable: " + observable.toBlocking.first())
// measure end time here
Thread.sleep(1000)
我如何測量可觀察物體運行所需的時間?
預先謝謝你
弗朗西斯
您需要在doOnSubscribe()
塊中啟動計時器,然后在onTerminated()
完成它。
一個例子可能是這樣的:
long start;
observable()
.doOnSubscribe(() -> start = System.nanoTime())
.doOnTerminate(() -> System.out.println(System.nanoTime() - start));
或者,您可以遵循Netflix對RxNetty所做的操作,並返回開始時間作為流過鏈的對象的一部分,並在結束時使用該時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.