Profiling Module

From BaseX Documentation
Revision as of 13:43, 15 June 2012 by CG (talk | contribs) (moved Profile Module to Profiling Module)
Jump to navigation Jump to search

This XQuery Module contains functions for XQuery code.

Conventions

All functions in this module are assigned to the http://basex.org/modules/prof namespace, which is statically bound to the prof prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.

Functions

Profiling

prof:time

Signatures prof:time($expr as item()) as item()*
prof:time($expr as item(), $cache as xs:boolean) as item()*
prof:time($expr as item(), $cache as xs:boolean, $label as xs:string) as item()*
Summary Measures the time needed to evaluate $expr and sends it to standard error or, if the GUI is used, to the Info View.
If $cache is set to true(), the result will be temporarily cached. This way, a potential iterative execution of the expression (which often yields different memory usage) is blocked.
A third, optional argument $label may be specified to tag the profiling result.
Examples
  • prof:time("1 to 100000") may output 25.69 ms.
  • prof:time("1 to 100000", true()) may output 208.12 ms.

prof:mem

Signatures prof:mem($expr as item()) as item()*
prof:mem($expr as item(), $cache as xs:boolean) as item()*
prof:mem($expr as item(), $cache as xs:boolean, $label as xs:string) as item()*
Summary Measures the memory allocated by evaluating $expr and sends it to standard error or, if the GUI is used, to the Info View.
If $cache is set to true(), the result will be temporarily cached. This way, a potential iterative execution of the expression (which often yields different memory usage) is blocked.
A third, optional argument $label may be specified to tag the profiling result.
Examples
  • prof:mb("1 to 100000") may output 0 Bytes.
  • prof:mb("1 to 100000", true()) may output 26.678 mb.

prof:sleep

Signatures prof:sleep($ms as xs:integer) as empty-sequence()*
Summary Sleeps for the specified number of milliseconds.

Changelog

This module was introduced with Version 7.3.