■AutoHotkeyのパフォーマンス2メモリ使用量を調べてみる。1万個の変数を動的に作成し、メモリ使用量と処理時間を調べる。SetBatchLines,-1s=0c=%A_TickCount%Loop,10000v%A_Index%=%A_Index%t=%A_TickCount%t-=%c%MsgBox,%t%ループを実行した場合、2843ミリ秒の時間がかかり、メモリ使用量は1MBほど増えた。変数1つ100バイトくらいか?メモリを確保するのには結構時間がかかるらしい。変数に空の値を代入するようにしたら、メモリ使用量の増分は300KBくらいになった。Array;s=0;c=w32.getTickCount();for(i=1;i3078ミリ秒で、172MBほど増える。オブジェクトはかなりメモリを食うようだ。String(i)をi.toString(10)とすると、500KBくらいしか増えなかった。代入する値をnullにすると300KBくらい。10000a[i]=""+inextmsgbox(GetTickCount()-c)438ミリ秒。配列は最初に宣言するため、速い。メモリは400KBほど増える。代入する値を空の文字列にしても同じくらい。次に、巨大なスクリプトを読み込ませてみる。DMonkeyの連番展開スクリプトを用いる。AutoHotkeyv=[0-1000]MsgBox,aaa展開部分のコードを抜かしたときと比べ、300KBほど増える。1001行の後に昨日の60000回足すスクリプトを実行してみたが、実行時間に差は無かった。DMonkeya=[0-1000];alert('aaa');300KBほどの増加。UWSCa=[0-1000]msgbox("")100KBほど増える。そんなわけで、たくさん変数を作ったり、長いスクリプトを常駐させても、現実的にはメモリ消費量が増えすぎて困るということはなさそうだ。StringSplitコマンドで行数の多い文字列を分割すると、大量に変数が作られてしまうので、常駐スクリプトではこのコマンドの使用は避けたほうがいいだろう。2005-10-08。