From WikiChip
Difference between revisions of "mirc/optimization"
< mirc

(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:
  
  
== if Syntax ==
+
== 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
  
$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.
+
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 21: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.


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)