Difference between revisions of "Profiling Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 22: Line 22:
 
* {{Code|prof:time("1 to 100000")}} may output {{Code|25.69 ms}}.
 
* {{Code|prof:time("1 to 100000")}} may output {{Code|25.69 ms}}.
 
* {{Code|prof:time("1 to 100000", true())}} may output {{Code|208.12 ms}}.
 
* {{Code|prof:time("1 to 100000", true())}} may output {{Code|208.12 ms}}.
 +
|-
 +
| '''Properties'''
 +
|The function is ''non-deterministic''.
 
|}
 
|}
  
Line 38: Line 41:
 
* {{Code|prof:mb("1 to 100000")}} may output {{Code|0 Bytes}}.
 
* {{Code|prof:mb("1 to 100000")}} may output {{Code|0 Bytes}}.
 
* {{Code|prof:mb("1 to 100000", true())}} may output {{Code|26.678 mb}}.
 
* {{Code|prof:mb("1 to 100000", true())}} may output {{Code|26.678 mb}}.
 +
|-
 +
| '''Properties'''
 +
|The function is ''non-deterministic''.
 
|}
 
|}
  
Line 49: Line 55:
 
| '''Summary'''
 
| '''Summary'''
 
|Sleeps for the specified number of milliseconds.
 
|Sleeps for the specified number of milliseconds.
 +
|-
 +
| '''Properties'''
 +
|The function is ''non-deterministic''.
 +
|}
 +
 +
==prof:current-ms==
 +
 +
{{Mark|Introduced with Version 7.4:}}
 +
 +
{|
 +
|-
 +
| width='90' | '''Signatures'''
 +
|{{Func|prof:current-ms||xs:integer}}<br />
 +
|-
 +
| '''Summary'''
 +
|Returns the number of milliseconds passed since 1970/01/01 UTC. The granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.
 +
|-
 +
| '''Properties'''
 +
|In contrast to {{Code|fn:current-time()}}, the function is ''non-deterministic'', as it returns different values every time it is called.
 +
|}
 +
 +
==prof:current-ns==
 +
 +
{{Mark|Introduced with Version 7.4:}}
 +
 +
{|
 +
|-
 +
| width='90' | '''Signatures'''
 +
|{{Func|prof:current-ns||xs:integer}}<br />
 +
|-
 +
| '''Summary'''
 +
|Returns the current value of the most precise available system timer in nanoseconds.
 +
|-
 +
| '''Properties'''
 +
|In contrast to {{Code|fn:current-time()}}, the function is ''non-deterministic'', as it returns different values every time it is called.
 
|}
 
|}
  
 
=Changelog=
 
=Changelog=
 +
 +
;Version 7.4
 +
 +
* Added: <code>[[#prof:current-ms|prof:current-ms]]</code>, <code>[[#prof:current-ns|prof:current-ns]]</code>
  
 
This module was introduced with Version 7.3.
 
This module was introduced with Version 7.3.
  
 
[[Category:XQuery]]
 
[[Category:XQuery]]

Revision as of 21:04, 20 July 2012

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

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.
Properties The function is non-deterministic.

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.
Properties The function is non-deterministic.

prof:sleep

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

prof:current-ms

Template:Mark

Signatures prof:current-ms() as xs:integer
Summary Returns the number of milliseconds passed since 1970/01/01 UTC. The granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.
Properties In contrast to fn:current-time(), the function is non-deterministic, as it returns different values every time it is called.

prof:current-ns

Template:Mark

Signatures prof:current-ns() as xs:integer
Summary Returns the current value of the most precise available system timer in nanoseconds.
Properties In contrast to fn:current-time(), the function is non-deterministic, as it returns different values every time it is called.

Changelog

Version 7.4

This module was introduced with Version 7.3.