Changes

Jump to navigation Jump to search
No change in size ,  17:36, 23 November 2017
no edit summary
=Performance Functions=
==prof:timetrack==
{{Mark|Updated Introduced with Version 9.0:}} {{Code|$cache}} argument removed.
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|prof:timetrack|$expr as item()|item()*}}<br />{{Func|prof:timetrack|$expr 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 the GUI is used, to map with the Info Viewresults.<br/>An optional The following {{Code|$labeloptions}} are available:* {{Code|memory}}: Enables time profiling (default: true).* {{Code|time}} may be specified to tag : Enables memory profiling (default: true).* {{Code|value}}: Returns the profiling resultvalue (default: true). Helpful 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, evaluation time 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 may take a long time is advisable to iterate through all resultsdisable this option.
|-
| '''Properties'''
|-
| '''Examples'''
|* {{Code|The function call <code>prof:timetrack(prof:sleep(10001 to 1000000)[. mod 2 = 0])}} outputs </code> will return something similar to :<pre class="brush:xquery">map {{Code|1000 "memory": 41548400, "time": 34.99 ms, "value": (2, 4, 6, 8, 10, ...)}}.</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. <br/>An optional {{Code|$label}} may be specified to tag the profiling result. Helpful 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 evaluation time will be very low, even if the serialized result it 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 evaluationtake a long time to iterate through all results.
|-
| '''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 profiling (default: true).* {{Code|time}}: Enables memory may be specified to tag the profiling (default: true).* {{Code|value}}: Returns the value (default: true)result.Helpful 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