1

如何在 eXist-db 中可靠地测量 XQuery 的执行时间?似乎 eXide 甚至考虑了浏览器中结果的呈现,我错了吗?

4

1 回答 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."

另一种常见的方法是记录此消息或将其发送到 Monex 应用程序的控制台。为此,请使用util:log()(built-in) 或console:log()(需要 Monex,如果尚未安装,可以从 Dashboard > Package Manager 安装)。

此外,请参阅 XQuery Wikibook 的条目https://en.wikibooks.org/wiki/XQuery/Timing_a_Query

注意:更新了 Gunther 从下面的评论中提出的建议。

于 2016-08-30T18:33:22.943 回答