最近は Raspberry Pi で LuaJIT を少し触りましたが、 以前 Apache2.4.1 に mod_lua が追加されたときにも 少しだけ Lua を触っていました。
Lua が結構速いということで、 その時に 他の言語と 超簡単な速度比較をしていたのですが、 今回は LuaJIT も含めて Raspberry Pi 上で比較してみたいと思います。
$ time bash -c 'for ((i=0;i<1000000;i++)) do j=i; done' real 2m51.676s user 2m46.940s sys 0m3.620s $ time perl -e 'for($i=0;$i<1000000;$i++){$j=$i;}' real 0m2.782s user 0m2.740s sys 0m0.020s $ time lua -e 'for i=1,1000000 do j=i end' real 0m0.337s user 0m0.330s sys 0m0.010s $ time luajit -e 'for i=1,1000000 do j=i end' real 0m0.041s user 0m0.010s sys 0m0.000s
luajit は 速いですね。
変数を局所化した方が早くなるそうなので そちらもお試し。
$ time lua -e 'local i, j; for i=1,1000000 do j=i end' real 0m0.171s user 0m0.160s sys 0m0.010s $ time luajit -e 'local i, j; for i=1,1000000 do j=i end' real 0m0.022s user 0m0.010s sys 0m0.000s
かなり速くなりました。
よくあるネタですが、自分メモとして。
Const ssfDESKTOP = &H0 ' Desktop Const ssfPERSONAL = &H5 ' My Documents Const ssfMYPICTURES = &H27 ' My Pictures Const ssfWINDOWS = &H24 ' Windows Function GetNewFolderPath(IstrMessage, IlngRoot) GetNewFolderPath = "" Dim objWShell, objFolder Set objWShell = WScript.CreateObject("Shell.Application") Set objFolder = objWShell.BrowseForFolder(0, IstrMessage, 0, IlngRoot) If (Not objFolder Is Nothing) Then GetNewFolderPath = objFolder.Self.Path End If Set objFolder = Nothing Set objWShell = Nothing End Function Msgbox GetNewFolderPath("Select Folder", ssfPERSONAL)
キャンセルすると空文字列が返ってくるみたいな。