html>AutoHotkey Benchmarks

AutoHotkey Benchmarks

Contents

Control Group

BenchmarkCodeAverage time per run (ms)
Blank Run
(None)
0.001587

1,000,000 iterations each

Assignment

BenchmarkCodeAverage time per run (ms)
Classic
Variable = Lorem ipsum dolor sit amet
0.002213
Classic with variable
Variable = Lorem ipsum %OtherVariable% dolor sit amet
0.002651
Expression
Variable := "Lorem ipsum dolor sit amet"
0.003103
Expression with variable
Variable := "Lorem ipsum" . OtherVariable . " dolor sit amet"
0.003687
Expression explicit concatenation
Variable := "Lorem ipsum" . " dolor sit amet"
0.003880
Expression implicit concatenation
Variable := "Lorem ipsum" " dolor sit amet"
0.004163

1,000,000 iterations each

Comparison

BenchmarkCodeAverage time per run (ms)
Classic If statement
If Variable = abcdef
 Return
0.004477
Expression If statement
If (Variable = "abcdef")
 Return
0.004888
List comparison
If Variable In abcdef
 Return
0.005293
Ternary
% (Variable = "abcdef") ? "" : ""
0.005658
Classic If between
If Variable Between 123 And 124
 Return
0.005817
Expression If between
If (Variable >= 123 && Variable <= 124)
 Return
0.006550

1,000,000 iterations each

String Searching

BenchmarkCodeAverage time per run (ms)
String search statement
IfInString, Variable, abcdef
 Return
0.006782
List search statement
If Variable Contains abcdef
 Return
0.007382
String get position command
StringGetPos, Temp1, Variable, abcdef
0.007839
In string function
InStr(Variable,"abcdef")
0.007946

1,000,000 iterations each

Regular Expressions

BenchmarkCodeAverage time per run (ms)
Match function
RegExMatch(Variable,"S)ab.*?.f$")
0.008592
Replace function
RegExReplace(Variable,"S)ab.*?.f$","$0")
0.009244
Static match
RegExMatch(Variable,"S)abcdef")
0.009136
Static replace
RegExReplace(Variable,"c","c")
0.011537

500,000 iterations each

String Manipulation

BenchmarkCodeAverage time per run (ms)
Substring function
SubStr(Variable,2,3)
0.009334
String middle command
StringMid, Temp1, Variable, 2, 3
0.010190
String trim command
StringTrimLeft, Temp1, Variable, 1
0.010258
String replace command
StringReplace, Temp1, Variable, c, c, All
0.011887

1,000,000 iterations each

String Operations

BenchmarkCodeAverage time per run (ms)
String length function
StrLen(Variable)
0.010588
String length command
StringLen, Temp1, Variable
0.010968
String split command
StringSplit, Temp, Variable, c
0.013622
Case conversion
StringUpper, Temp1, Variable
0.012183

1,000,000 iterations each

Files

BenchmarkCodeAverage time per run (ms)
File attributes and exists function
FileExist(A_ScriptFullPath)
0.078910
If file exists
IfExist, %A_ScriptFullPath%
 Return
0.078434
Get size
FileGetSize, Temp1,%A_ScriptFullPath%
0.097709
Read file
FileRead, Temp1, *m100 %A_ScriptFullPath%
0.128592
Read file line
FileReadLine, Temp1, %A_ScriptFullPath%, 2
0.130343
Append to file
FileAppend, c, %A_Temp%\Temp.txt
2.865857
Copy file
FileCopy, %A_Temp%\Temp.txt, %A_Temp%\Temp1.txt, 1
2.168428
Move file
FileMove, %A_Temp%\Temp.txt, %A_Temp%\Temp.txt, 1
1.955437
Filesystem loop
Loop, %A_ScriptFullPath%
 Return
0.102726
File reading loop
Loop, Read, %A_ScriptFullPath%
 Return
0.138094

5,000 iterations each

Control Flow

BenchmarkCodeAverage time per run (ms)
Normal loop
Loop, 1
{
 
}
0.015676
While loop
While, (A_Index = 1)
{
 
}
0.016292
Parsing loop
Loop, Parse, Variable, ,
{
 
}
0.017068
Blank subroutine call
Gosub, BlankLabel
0.016289
Blank function call
BlankFunction()
0.016984

1,000,000 iterations each

Environment Variables

BenchmarkCodeAverage time per run (ms)
Set environment variable
EnvSet, EnvVar, abcdeg
0.024150
Get environment variable
EnvGet, Temp1, EnvVar
0.020030

500,000 iterations each

Keyboard and mouse

BenchmarkCodeAverage time per run (ms)
Get mouse position
MouseGetPos, Temp1, Temp2
0.022437
Move mouse
MouseMove, 0, 0, 0, R
0.216654

10,000 iterations each

Dynamic Variables

BenchmarkCodeAverage time per run (ms)
Dynamic variable access
% %Variable%
0.019712
Dynamic variable assignment
%Variable% = abcdeg
0.019903

1,000,000 iterations each

System Information

FieldValue
AutoHotkey VersionAutoHotkey v1.1.05.06 ANSI (x86)
OS NameMicrosoft Windows 7 Home Premium
OS Version6.1.7601 Service Pack 1 Build 7601
OS ConfigurationStandalone Workstation
OS Build TypeMultiprocessor Free
System ManufacturerTOSHIBA
System ModelSatellite C655D
System Typex64-based PC
Processor(s)1 Processor(s) Installed.,[01]: AMD64 Family 20 Model 1 Stepping 0 AuthenticAMD ~1600 Mhz
BIOS VersionInsyde Corp. 1.60, 6/23/2011
Total Physical Memory2,663 MB
Available Physical Memory958 MB
Virtual Memory: Max Size5,324 MB
Virtual Memory: Available2,750 MB