簡體   English   中英

使用RxJava(ReactiveX)運行Observable需要多長時間?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM