From Bohemia Interactive Community
					 
					
					
					
					
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.
 
- 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;As for the third parameter, only run the code with desired loop and not always 1000 times like the default set: e.g.
[‘
 a= 0; b = true;
 for [{_i = 0},{_i < 10 && b},{_i = _i + 1}] do {
   a = a + 1; 
   if (a >= 7) then {b = false};
 };’
 ,[],1000] call BIS_fnc_codePerformance;
//Sometimes such 1000 loops will freeze the game directly. 
So separating all three parameters and using them wisely are recommended.
Bottom Section