在 eXist 中获取 XQuery 的执行时间
Get execution time of XQuery in eXist
如何才能可靠地衡量 eXist-db 中 XQuery 的执行时间?
似乎 eXide 甚至考虑了浏览器中结果的呈现,我错了吗?
eXide 仅测量执行查询所需的时间,而不测量在浏览器中呈现结果或序列化结果所需的时间。 (要确认,请参阅执行查询和测量持续时间的 eXide 源代码:https://github.com/wolfgangmm/eXide/blob/develop/controller.xql#L155-L193。第一个时间戳记在第 159 行,第二个时间戳记在 189-90。)
您可以使用相同的技术测量您自己的查询的持续时间:
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()
(内置)或 console:log()
(需要 Monex,如果尚未安装,可以从 Dashboard > Package Manager 安装)。
另外,请参阅 XQuery Wikibook 的条目,https://en.wikibooks.org/wiki/XQuery/Timing_a_Query。
注意: 根据 Gunther 根据以下评论提出的建议进行了更新。
如何才能可靠地衡量 eXist-db 中 XQuery 的执行时间? 似乎 eXide 甚至考虑了浏览器中结果的呈现,我错了吗?
eXide 仅测量执行查询所需的时间,而不测量在浏览器中呈现结果或序列化结果所需的时间。 (要确认,请参阅执行查询和测量持续时间的 eXide 源代码:https://github.com/wolfgangmm/eXide/blob/develop/controller.xql#L155-L193。第一个时间戳记在第 159 行,第二个时间戳记在 189-90。)
您可以使用相同的技术测量您自己的查询的持续时间:
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()
(内置)或 console:log()
(需要 Monex,如果尚未安装,可以从 Dashboard > Package Manager 安装)。
另外,请参阅 XQuery Wikibook 的条目,https://en.wikibooks.org/wiki/XQuery/Timing_a_Query。
注意: 根据 Gunther 根据以下评论提出的建议进行了更新。