![](/img/trans.png)
[英]How do I measure the execution time of JavaScript code with callbacks?
[英]How to measure code execution time in VBScript or JavaScript?
对于VBScript,您可以使用Timer:
StartTime = Timer()
EndTime = Timer()
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
或ASP Profiler (用于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()
。然后,您可以减去时间以获得经过的时间(以毫秒为单位)。
这是一篇关于JavaScript计时的精彩文章,来自“Even Faster Websites”一书。 需要记住的两件事是,JavaScript Date对象的分辨率通常高达15ms(这取决于浏览器和操作系统),并且大多数分析器都具有观察者效果 。 请注意, Google Speed Tracer (自文章发布以来的新版本)用完了流程,并异步收集数据以最大限度地减少观察者的影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.