VBScript でコードの実行時間を測定する良い方法は何ですか?
または、 JavaScript でそれを行う方法に失敗しましたか?
VBScriptの場合、タイマーを使用できます。
StartTime = Timer()
EndTime = Timer()
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
または ASPプロファイラー (つまり、ASP環境用)
JavaScriptの場合、日付を使用できます。
var start = new Date().getTime()
alert("Milliseconds: " + (new Date().getTime() - start))
Firebug JavaScript用のプロファイラーもあります。
JavaScriptの場合、組み込みのようなプロファイラーを使用することをお勧めします Firebug :
(ソース: getfirebug.com )
他の選択肢は、Googleに含まれているものである可能性があります Chrome 、または IE8
プログラムで実行したい場合は、 Date
オブジェクトを使用して時差を取得できます。
var startTime = new Date();
// ...
// ...
var endTime = new Date();
var delta = endTime - startTime; // difference in milliseconds
ここで適切な時間/分/秒のフォーマットで完璧な関数を見つけました: https://social.technet.Microsoft.com/wiki/contents/articles/633.vbscript-determine-script-execution-time.aspx
使用法:
dtmStartTime = Timer
Wscript.Echo "Hello, World!"
Wscript.Sleep 1000
Wscript.Echo "Script completed in " & GetElapsedTime
関数:
Function GetElapsedTime
Const SECONDS_IN_DAY = 86400
Const SECONDS_IN_HOUR = 3600
Const SECONDS_IN_MINUTE = 60
Const SECONDS_IN_WEEK = 604800
dtmEndTime = Timer
seconds = Round(dtmEndTime - dtmStartTime, 2)
If seconds < SECONDS_IN_MINUTE Then
GetElapsedTime = seconds & " seconds "
Exit Function
End If
If seconds < SECONDS_IN_HOUR Then
minutes = seconds / SECONDS_IN_MINUTE
seconds = seconds MOD SECONDS_IN_MINUTE
GetElapsedTime = Int(minutes) & " minutes " & seconds & " seconds "
Exit Function
End If
If seconds < SECONDS_IN_DAY Then
hours = seconds / SECONDS_IN_HOUR
minutes = (seconds MOD SECONDS_IN_HOUR) / SECONDS_IN_MINUTE
seconds = (seconds MOD SECONDS_IN_HOUR) MOD SECONDS_IN_MINUTE
GetElapsedTime = Int(hours) & " hours " & Int(minutes) & " minutes " & seconds & " seconds "
Exit Function
End If
If seconds < SECONDS_IN_WEEK Then
days = seconds / SECONDS_IN_DAY
hours = (seconds MOD SECONDS_IN_DAY) / SECONDS_IN_HOUR
minutes = ((seconds MOD SECONDS_IN_DAY) MOD SECONDS_IN_HOUR) / SECONDS_IN_MINUTE
seconds = ((seconds MOD SECONDS_IN_DAY) MOD SECONDS_IN_HOUR) MOD SECONDS_IN_MINUTE
GetElapsedTime = Int(days) & " days " & Int(hours) & " hours " & Int(minutes) & " minutes " & seconds & " seconds "
Exit Function
End If
End Function
JavaScriptの場合は、 Firebug または [〜#〜] ie [〜#〜] プロファイラーを使用するか、無料 DynaTrace AJAX =エディションプロファイラー 。
これは本当にあなたが測定しようとしているものに依存しますか?
何かをテストしていて、特定の部分がどれくらいの時間かかるか知りたい場合は、開始時間変数と停止時間変数を宣言してから、それらの間で違いを出すことができます。
_d = new Date();
x = 0;
for (i = 0; i < 1e7; ++i) { x += i; }
d2 = new Date();
d2 - d
12296
_
Date
オブジェクトを使用します。このオブジェクトは1970年1月1日からミリ秒単位でvalueOf()
を返します。その後、時間を減算して経過時間をミリ秒単位で取得できます。
This は、「Even Faster Websites」という本からの、JavaScriptのタイミングに関するすばらしい記事です。覚えておくべき2つのことは、JavaScript Dateオブジェクトの解像度は15msにもなることが多く(これはブラウザーとオペレーティングシステムによって異なります)、ほとんどのプロファイラーには オブザーバー効果 があります。 Google Speed Tracer (記事が公開されてから新しい)はプロセスが不足し、オブザーバー効果を最小限に抑えるために非同期でデータを収集することに注意してください。