BIS fnc codePerformance: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 44: Line 44:
<dd class="notedate">Posted on Mar 31, 2014 - 11:09
<dd class="notedate">Posted on Mar 31, 2014 - 11:09
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
(Environment: ArmA3 ver 1.14) Please always take advantage of the second and third parameters when running code on [[BIS_fnc_CodePerformance]]! It will be critical if parameters weren’t separated especially when reserved variables looped! E.g.
(Environment: ArmA3 ver 1.14) Please always take advantage of the second and third parameters when running code on [[BIS_fnc_CodePerformance]]. And it is not suggested to use reserved variables under scheduled environment. E.g.
<code>
<code>
['for "_i" from 0 to 2 do {[{a = _this}] spawn {private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param;<br> {_x call _code; } forEach AllUnits;};};'] call bis_fnc_codeperformance;
['[{a = _this}] spawn {private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param; {_x call _code;} forEach AllUnits;};'] call bis_fnc_codeperformance;
</code>
</code>
//There will be a great latency until GUI being displayed, never do like that, on the contrary, we should:
//There will be a great latency until GUI being displayed, never do like that, on the contrary, we should:
<code>
<code>
['{private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param; {_x call _code;} forEach AllUnits;}',[{a = _this}],3] call bis_fnc_codeperformance;
['{private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param; {_x call _code;} forEach AllUnits;}',[{a = _this}],1000] call bis_fnc_codeperformance;
</code>
</code>
//Separated all three parameters won’t have any problem.
//Separated all three parameters won’t have any problem.

Revision as of 04:45, 31 March 2014

Hover & click on the images for description

Description

Description:
Measures how much time it takes to execute given expression. Results may vary based on overall performance; use this function to compare alternative scripting approaches rather than to measure specific values. In Arma 3, window with results is opened afterwards. NOTE: For best results restart your client before conducting tests. This function uses diag_tickTime which loses its precision the longer the client runs from restart. BIS fnc codePerformance.png
Execution:
call
Groups:
Uncategorised

Syntax

Syntax:
[expression(String),Any([parameters]),cycles(Number)] call BIS_fnc_codePerformance;
Parameters:
expression: String - tested expression
Any (Optional): Param(s) - passed into code (default: [])
cycles (Optional): Number - Number of cycles (default: 10000)
Return Value:
Nothing

Examples

Example 1:
testArray = []; ["testArray = testArray + [1];"] call BIS_fnc_codePerformance; testArray = []; ["testArray set [count testArray,1];"] call BIS_fnc_codePerformance; Compare two methods of adding elements into array

Additional Information

See also:
See also needed

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Posted on Mar 31, 2014 - 11:09
ffur2007slx2_5
(Environment: ArmA3 ver 1.14) Please always take advantage of the second and third parameters when running code on BIS_fnc_CodePerformance. And it is not suggested to use reserved variables under scheduled environment. E.g. ['[{a = _this}] spawn {private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param; {_x call _code;} forEach AllUnits;};'] call bis_fnc_codeperformance; //There will be a great latency until GUI being displayed, never do like that, on the contrary, we should: ['{private "_code"; _code = [_this,0,{},[{}]] call bis_fnc_param; {_x call _code;} forEach AllUnits;}',[{a = _this}],1000] call bis_fnc_codeperformance; //Separated all three parameters won’t have any problem.

Bottom Section