Получить время выполнения XQuery в eXist
Как получить надежную оценку времени выполнения XQuery в eXist-db? Похоже, что eXide учитывает даже отображение результатов в браузере, я не прав?
1 ответ
eXide измеряет только время, необходимое для выполнения запроса, а не для отображения результатов в браузере или сериализации результатов. (Для подтверждения см. Источник eXide, где выполняются запросы и измеряется продолжительность: https://github.com/wolfgangmm/eXide/blob/develop/controller.xql#L155-L193. Первая временная метка, взятая в строке 159 и 2-й на 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.
Примечание: Обновлено с предложением Гюнтера из комментариев ниже.