Lua に触れてみる 5

最近は 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

かなり速くなりました。

VBS からフォルダダイアログを開く

よくあるネタですが、自分メモとして。

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)

キャンセルすると空文字列が返ってくるみたいな。

Google サイト内検索

Amazonアソシエイト