From WikiChip
Editing mirc/optimization

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.

Latest revision Your text
Line 3: Line 3:
 
mIRC Script Language is an interpreted language - which means that mIRC has to work out what each statement means each and every time it is executed. Consequently it is not considered a fast language and, more often than not, the easiest implementation is not the fastest.
 
mIRC Script Language is an interpreted language - which means that mIRC has to work out what each statement means each and every time it is executed. Consequently it is not considered a fast language and, more often than not, the easiest implementation is not the fastest.
  
That said, PCs today are far more powerful than when mIRC first introduced its scripting language, and unless your script is processing large number of messages or large files, then performance is less of an issue than it used to be. On the other hand, the maintainability of your script is also important, so eliminating duplicate code using common aliases & identifiers is also beneficial even if it introduces some minor overheads.
+
That said, PCs today are far more powerful then when mIRC first introduced its scripting language, and unless your script is processing large number of messages or large files, then performance is less of an issue than it used to be. On the other hand, the maintainability of your script is also important, so eliminating duplicate code using common aliases & identifiers is also beneficial even if it introduces some minor overheads.
  
 
The following tips will help to increase the execution speed of a script. Most will have a very marginal speed advantage and may not be worth consideration outside of long-running script blocks such as loops.
 
The following tips will help to increase the execution speed of a script. Most will have a very marginal speed advantage and may not be worth consideration outside of long-running script blocks such as loops.
Line 60: Line 60:
  
 
=== Alias Bypassing ===
 
=== Alias Bypassing ===
When calling any command, mIRC will attempt to find a scripted version prior to looking for a native equivalent. This functionality can be bypassed by prefixing commands with <code>!</code>. $identifiers do not require anything because built-in identifier always have priority, the $~ construct does not speed anything, it only prevents an identifier to look for custom aliases if it's not a built-in.
+
When calling any form of command or identifier mIRC will attempt to find a scripted version prior to looking for a native equivalent. This functionality can be bypassed by prefixing commands with <code>!</code> and by inserting a <code>~</code> after the <code>$</code> of identifiers.
  
 
For example, this bypasses mIRC looking for a scripted <code>echo</code> alias:
 
For example, this bypasses mIRC looking for a scripted <code>echo</code> alias:
Line 67: Line 67:
 
''Benchmark:''
 
''Benchmark:''
 
<syntaxhighlight lang="mirc">/benchmark -aci100000 !set -l %a 2;set -l %a 1</syntaxhighlight>
 
<syntaxhighlight lang="mirc">/benchmark -aci100000 !set -l %a 2;set -l %a 1</syntaxhighlight>
 +
 +
Alternatively this bypasses mIRC looking for a scripted <code>me</code> alias<sup>1</sup>:
 +
<syntaxhighlight lang="mirc">echo -a $~me</syntaxhighlight>
 +
 +
<sup>1</sup>: Even though mIRC will use its own native identifiers over custom aliases of the same name, there is still some pre-evaluation that can be bypassed using the above method.
 +
 +
''Benchmark:''
 +
<syntaxhighlight lang="mirc">/benchmark -ai100000 $~left(abc,2);$left(abc,2)</syntaxhighlight>
  
 
=== Conditions ===
 
=== Conditions ===
Line 122: Line 130:
 
%x = VALUE
 
%x = VALUE
 
set %x VALUE
 
set %x VALUE
 +
set %x = VALUE
 
var -g %x VALUE
 
var -g %x VALUE
 
var -g %x = VALUE
 
var -g %x = VALUE
Line 132: Line 141:
 
<syntaxhighlight lang="mirc">
 
<syntaxhighlight lang="mirc">
 
set -l %x VALUE
 
set -l %x VALUE
 +
set -l %x = VALUE
 
var %x VALUE
 
var %x VALUE
 
var %x = VALUE
 
var %x = VALUE

Please note that all contributions to WikiChip may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see WikiChip:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)