(Outlining data to be filled in at a later date) |
(Basic info of what is best) |
||
Line 1: | Line 1: | ||
+ | {{mirc title|Optimization}} | ||
+ | |||
mIRC is not considered a fast language and, more often than not, the easiest implementation is not the fastest. | mIRC is not considered a fast language and, more often than not, the easiest implementation is not the fastest. | ||
Line 8: | Line 10: | ||
− | == | + | == Conditional Syntax == |
+ | Best to worst: | ||
+ | if (condition) command | ||
+ | if condition { command } | ||
+ | if (condition) { command } | ||
== if-else vs $iif() == | == if-else vs $iif() == | ||
+ | $iif() is much slower than using an if-else statement. When $iif() is evaluated it is first rearranged into an if-else statement and the resulting if-else statement is parsed. | ||
+ | |||
+ | Best to worst: | ||
+ | var %result = condition_false_value | ||
+ | if (condition) %result = condition_true_value | ||
− | + | if (condition) %result = condition_true_value | |
+ | else %result = condition_false_value | ||
+ | |||
+ | %result = $iif(condition, condition_true_value, condition_false_value) | ||
== /tokenize & $n vs $gettok() == | == /tokenize & $n vs $gettok() == | ||
+ | For successive calls against the same data, it is faster to use /tokenize and $n over $gettok(). | ||
+ | |||
+ | |||
+ | == []'s vs $() vs $eval == | ||
+ | Best to worst: | ||
+ | [ eval_statement ] | ||
+ | $(eval_statement, 2) | ||
+ | $eval(eval_statement, 2) |
Revision as of 20:54, 15 December 2015
mIRC is not considered a fast language and, more often than not, the easiest implementation is not the fastest.
The following tips will help to increase the execution speed of a script. Most will have a very marginal speed advantage and, as such, may not be worth the hassle outside of long-running script blocks such as loops.
Contents
Custom alias bypassing
When calling any form of command or identifer mIRC attempts to find a scripted version prior to looking for native functionality. This can be bypassed by prefixing commands with ! and by inserting a ~ after the $ of identifers
Conditional Syntax
Best to worst: if (condition) command if condition { command } if (condition) { command }
if-else vs $iif()
$iif() is much slower than using an if-else statement. When $iif() is evaluated it is first rearranged into an if-else statement and the resulting if-else statement is parsed.
Best to worst: var %result = condition_false_value if (condition) %result = condition_true_value
if (condition) %result = condition_true_value else %result = condition_false_value
%result = $iif(condition, condition_true_value, condition_false_value)
/tokenize & $n vs $gettok()
For successive calls against the same data, it is faster to use /tokenize and $n over $gettok().
[]'s vs $() vs $eval
Best to worst: [ eval_statement ] $(eval_statement, 2) $eval(eval_statement, 2)