eXist-db で XQuery の実行時間の信頼できる測定値を取得するにはどうすればよいですか? eXide はブラウザーでの結果のレンダリングも考慮に入れているようですが、間違っていますか?
1 に答える
3
eXide はクエリの実行に必要な時間のみを測定し、結果をブラウザーにレンダリングしたり、結果をシリアル化したりする時間は測定しません。(確認するには、クエリが実行され、期間が測定される eXide ソースを参照してください: https://github.com/wolfgangmm/eXide/blob/develop/controller.xql#L155-L193 。159行目で取得された最初のタイムスタンプと189-90 の 2 番目。)
これと同じ手法を使用して、独自のクエリの期間を測定できます。
xquery version "3.1";
let $start-time := util:system-time()
let $query-needing-measurement := (: insert query or function call here :)
let $end-time := util:system-time()
let $duration := $end-time - $start-time
let $seconds := $duration div xs:dayTimeDuration("PT1S")
return
"Query completed in " || $seconds || "s."
もう 1 つの一般的な方法は、このメッセージをログに記録するか、Monex アプリのコンソールに送信することです。これには、util:log()
(ビルトイン) またはconsole:log()
(Monex が必要です。まだインストールされていない場合は、ダッシュボード > パッケージ マネージャーからインストールできます) を使用します。
また、XQuery Wikibook のエントリhttps://en.wikibooks.org/wiki/XQuery/Timing_a_Queryも参照してください。
注:以下のコメントからの Gunther による提案で更新されました。
于 2016-08-30T18:33:22.943 に答える