如何在eXist-db中可靠地测量XQuery的执行时间? 似乎eXide甚至考虑了浏览器中结果的渲染,我错了吗?
答案 0 :(得分:3)
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的建议。