Changes

Jump to navigation Jump to search
420 bytes removed ,  13:23, 24 May 2018
no edit summary
==prof:track==
 
{{Mark|Introduced with Version 9.0:}}
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|prof:track|$expr expression as item()|item()*}}<br/>{{Func|prof:track|$expr expression as item(), $options as map(*)?|item()*}}
|-
| '''Summary'''
|Measures the execution time and memory consumption required for evaluating the specified {{Code|$expression}} and returns a map with the results. The following {{Code|$options}} are available:
* {{Code|memory}}: Enables time profiling Include memory consumption in result (unit: bytes; default: true).* {{Code|time}}: Enables memory profiling Include execution time in result (unit: milliseconds; default: true).* {{Code|value}}: Returns the Include value in result (default: true).
Helpful notes:
* If you are not interested in some of the returned results, you should disable them to save time and memory.* Profiling might change the execution behavior of your code: An expression that might be executed iteratively will be cached by the profiling function.
* If a value has a compact internal representation, memory consumption will be very low, even if the serialized result may consume much more memory.
* In Java, Please note that memory profiling can is only be approximative: To improve the measurement, and if so it can be quite misleading. If the memory option is enabled, main-memory will be garbage-collected before and after evaluation. If you are not interested in to improve the quality of the memory consumption, it is advisable to disable this optionmeasurement.
|-
| '''Properties'''
|-
| '''Examples'''
|* Return a human-readable representation of the memory consumption caused by fetching an XML document (<code>fetch:xml</code> is used, as <code>fn:doc</code> may already be evaluated at compilation time):<pre class="brush:xquery">prof:track(fetch:xml('factbook.xml'))?memory=> prof:human()</pre>* The function call <code>prof:track((1 to 1000000)[. mod 2 = 0], map { 'time': false() })</code> will return something similar to:
<pre class="brush:xquery">
map {
"memory": 41548400, "time": 34.9921548400,
"value": (2, 4, 6, 8, 10, ...)
}
==prof:time==
 
{{Mark|Updated with Version 9.0:}} {{Code|$cache}} argument removed.
{| width='100%'
|-
| '''Summary'''
|Measures the time needed to evaluate {{Code|$expr}} and outputs a string to standard error or, if the GUI is used, to the Info View.<br/>An optional {{Code|$label}} may be specified to tag the profiling result. Helpful notes:* See {{Function|Profiling might change the behavior of your code|prof: An expression that might be executed iteratively will be cached by the profiling function.* If a value has a compact internal representation, evaluation time will be very low, even if it may take a long time to iterate through all resultstrack}} for further notes.
|-
| '''Properties'''
==prof:memory==
 
{{Mark|Updated with Version 9.0:}} Renamed (old name: <code>prof:mem</code>); {{Code|$cache}} argument removed.
{| width='100%'
|-
| '''Summary'''
|Measures the memory allocated by evaluating {{Code|$expr}} and outputs a string to standard error or, if the GUI is used, to the Info View. An optional {{Code|$label}} may be specified to tag the profiling result. Helpful notes:* See {{Function|Profiling might change the behavior of your code|prof: An expression that might be executed iteratively will be cached by the profiling function.* If a value has a compact internal representation, memory consumption will be very low, even if the serialized result may consume much more memory.* In Java, memory profiling can only be approximative: To improve the measurement, main-memory will be garbage-collected before and after evaluationtrack}} for further notes.
|-
| '''Properties'''
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu