BIS fnc codePerformance – Talk
Jump to navigation
Jump to search
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.
Killzone Kid (talk | contribs) (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...") |
Lou Montana (talk | contribs) m (Text replacement - "<code>" to "<code style="display: block">") |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
Please Karel, make it happen :) | Please Karel, make it happen :) | ||
== notes from before the engine command == | |||
<dt><dt> | |||
<dd class="notedate">Posted on Mar 31, 2014 - 11:09</dd> | |||
<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 style="display: block">[' | |||
[ { 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 style="display: block">[' | |||
{ | |||
[[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 style="display: block">[‘ | |||
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. |
Latest revision as of 11:53, 11 January 2023
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
['
[ { 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.