Difference between revisions of "Profiling Module"
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.
Contents
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 |
|
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 |
|
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
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
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
- Added:
prof:current-ms
,prof:current-ns
This module was introduced with Version 7.3.