BIS fnc codePerformance – Talk

From Bohemia Interactive Community
Jump to navigation Jump to search
(Created page with "This is great function but needs an alternative syntax for convenience and ease of remembering: {code} call BIS_fnc_codePerformance; which would be set at default 10,000 iterat...")
 
Line 6: Line 6:


Please Karel, make it happen :)
Please Karel, make it happen :)
== notes from before the engine command ==
<dd class="notedate">Posted on Mar 31, 2014 - 11:09
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
(ArmA3 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 [[Scheduler#Scheduled_Environment|scheduled environment]]. E.g.
<code>['
    [ { a = _this } ] [[spawn]] {
        [[private]] "_code";
        _code = [_this, 0, {}, [{}]] [[call]] [[BIS_fnc_param]];
        { _x [[call]] _code; } [[forEach]] [[allUnits]];
    };
'] [[call]] [[BIS_fnc_codePerformance]];</code>
There will be a great latency until GUI being displayed, never do like that, on the contrary, we should:
<code>['
    {
        [[private]] "_code";
        _code = [_this, 0, {}, [{}]] [[call]] [[BIS_fnc_param]];
        { _x [[call]] _code; } [[forEach]] [[allUnits]];
    }'
, [ {a = _this } ], 1000] [[call]] [[BIS_fnc_codePerformance]];</code>
As for the third parameter, only run the code with desired loop and not always 1000 times like the default set:
<code>
[‘
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.
</code>
So separating all three parameters and using them wisely are recommended.

Revision as of 11:41, 21 June 2017

This is great function but needs an alternative syntax for convenience and ease of remembering:

{code} call BIS_fnc_codePerformance;

which would be set at default 10,000 iterations.

Please Karel, make it happen :)

notes from before the engine command

Posted on Mar 31, 2014 - 11:09
ffur2007slx2_5
(ArmA3 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: [‘ 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.