Changes

Jump to navigation Jump to search
198 bytes removed ,  13:47, 23 March 2018
=Performance Functions=
==prof:timetrack==
{{Mark|Updated Introduced with Version 9.0:}} {{Code|$cache}} argument removed.
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|prof:timetrack|$expr expression as item()|item()*}}<br />{{Func|prof:timetrack|$expr expression as item(), $label options as xs:stringmap(*)?|item()*}}
|-
| '''Summary'''
|Measures the execution time needed to evaluate and memory consumption required for evaluating the specified {{Code|$exprexpression}} and outputs returns a string to standard error or, if map with the GUI is used, to the Info Viewresults.<br/>An optional The following {{Code|$labeloptions}} are available:* {{Code|memory}}: Include memory consumption in result (unit: bytes; default: true).* {{Code|time}}: Include execution time in result (unit: milliseconds; default: true).* {{Code|value}} may be specified to tag the profiling : 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, evaluation time memory consumption will be very low, even if the serialized result may consume much more memory.* Please note that memory profiling is only approximative, so it may take a long time can be quite misleading. If the memory option is enabled, main-memory will be garbage-collected before and after evaluation to iterate through all resultsimprove the quality of the measurement.
|-
| '''Properties'''
| '''Examples'''
|
* {{Code|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:timetrack(fetch:xml('factbook.xml'))?memory=> prof:sleephuman(1000)</pre>* The function call <code>prof:track((1 to 1000000)[. mod 2 = 0], map { 'time': false()}} outputs )</code> will return something similar to :<pre class="brush:xquery">map {{Code|1000 "memory": 21548400, "value": (2, 4, 6, 8, 10, ...99 ms})}.</pre>
|}
==prof:memorytime==
{{Mark|Updated with Version 9.0:}} Renamed (old name: <code>prof:mem</code>); {{Code|$cache}} argument removed.
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|prof:memorytime|$expr as item()|item()*}}<br/>{{Func|prof:memorytime|$expr as item(), $label as xs:string|item()*}}
|-
| '''Summary'''
|Measures the memory allocated by evaluating time needed to evaluate {{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'''
| '''Examples'''
|
* {{Code|prof:memorytime(prof:sleep(1 to 1000001000) ! <a/>)}} will output outputs something similar to {{Code|5620 kB1000.99 ms}}.
|}
==prof:trackmemory==
{{Mark|Introduced Updated with Version 9.0:}}Renamed (old name: <code>prof:mem</code>); {{Code|$cache}} argument removed.
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|prof:trackmemory|$expr as item()|item()*}}<br/>{{Func|prof:trackmemory|$expr as item(), $options label as map(*)xs:string|item()*}}
|-
| '''Summary'''
|Measures the execution time and memory consumption required for allocated by evaluating the specified {{Code|$expressionexpr}} and returns outputs a map with string to standard error or, if the GUI is used, to the resultsInfo View. The following An optional {{Code|$optionslabel}} are available:* {{Code|memory}}: Enables time may be specified to tag the profiling (default: true)result.* See {{CodeFunction|Profiling|time}}prof: Enables memory profiling (default: true).* {{Code|valuetrack}}: Returns the value (default: true).Helpful for further notes:* Profiling might change the 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, memory profiling can only be approximative: To improve the measurement, and if the memory option is enabled, main-memory will be garbage-collected before and after evaluation. If you are not interested in the memory consumption, it is advisable to disable this option.
|-
| '''Properties'''
|-
| '''Examples'''
|The function call <code>* {{Code|prof:trackmemory((1 to 1000000)[. mod 2 = 0]100000)! <a/code> )}} will return output something similar to:<pre class="brush:xquery">map { "memory": 41548400, "time": 34{Code|5620 kB}}.99, "value": (2, 4, 6, 8, 10, ...)}</pre>
|}
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu