How to measure code execution time in VBScript or JavaScript?
For VBScript you can use Timer:
StartTime = Timer()EndTime = Timer()Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
Or ASP Profiler (that is for an ASP environment.)
For JavaScript you can use Date:
var start = new Date().getTime()alert("Milliseconds: " + (new Date().getTime() - start))
Firebug also has a profiler for JavaScript.
For JavaScript, I would recommend you to use a profiler, like the one built-in in Firebug:
(source: getfirebug.com)
Other alternatives can be the one included with Google Chrome, or IE8
If you want to do it programmatically, you could use Date
objects to get a time difference:
var startTime = new Date();// ...// ...var endTime = new Date();var delta = endTime - startTime; // difference in milliseconds
Found the perfect function with proper Hours/Mins/Secs formatting here: https://social.technet.microsoft.com/wiki/contents/articles/633.vbscript-determine-script-execution-time.aspx
Usage:
dtmStartTime = TimerWscript.Echo "Hello, World!"Wscript.Sleep 1000Wscript.Echo "Script completed in " & GetElapsedTime
Function:
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 IfEnd Function