|
分類:[VBScript]
VBScriptで書いたプログラムが遅い気がしまして調査しています。
プログラムの動作が遅くて調査しましたところ
オブジェクトのメソッドを呼ぶのが遅いようでした。
そこでオブジェクトのメソッドを呼ぶ時間とグローバルなメソッドを呼ぶ時間を比較してみました。
オブジェクトのメソッドの呼び出しはグローバルなメソッドの呼び出しの2200倍時間がかかりました。
昔動かした時はもっと速かったような気がするのですが、記憶に
残っておらず記録も残していなかったのでわかりません。
昔からこれくらい差があるものでしたでしょうか?
みなさんの環境ではどんなものでしょうか?
実行結果だけでも教えていただけると助かります。
プログラムをfileName.vbsという名前で保存して
コマンドプロンプトからcscript fileName.vbsで実行できます。
以上、よろしくお願いいたします。
[試した環境]
OS 名: Microsoft Windows 10 Home
OS バージョン: 10.0.17134 N/A ビルド 17134
[試したプログラム]
Option Explicit
Main
Sub Main()
Dim o, t, i
Const c = 65536
Set o = New Obj
t = Timer()
For i = 1 To c
o.Method
Next
t = Timer() - t
WScript.StdOut.WriteLine "Object: " & FormatNumber(t, 1)
t = Timer()
For i = 1 To c
Method
Next
t = Timer() - t
WScript.StdOut.WriteLine "Global: " & FormatNumber(t, 1)
End Sub
Sub Method()
End Sub
Class Obj
Sub Method()
End Sub
End Class
[試した結果]
Object: 28.6
Global: 0.0
|