How to measure code execution time in VBScript or JavaScript?

前端 未结 7 1534
野趣味
野趣味 2020-12-06 05:23

What is a good way to measure code execution time in VBScript?

Or failing that how to do it in JavaScript?

相关标签:
7条回答
  • 2020-12-06 05:54

    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 = Timer
    Wscript.Echo "Hello, World!"
    Wscript.Sleep 1000
    Wscript.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 If
    End Function
    
    0 讨论(0)
  • 2020-12-06 05:54

    For JavaScript, use the Firebug or IE profilers, or free DynaTrace AJAX edition profiler.

    0 讨论(0)
  • 2020-12-06 05:54

    This is a great article on JavaScript timing, from the book "Even Faster Websites". Two things to keep in mind are that JavaScript Date objects often have a resolution as big as 15ms (this varies by browser and operating system), and most profilers have an observer effect. Note that Google Speed Tracer (new since the article was published) runs out of process and collects data asynchronously to minimize the observer effect.

    0 讨论(0)
  • 2020-12-06 05:55

    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
    
    0 讨论(0)
  • 2020-12-06 05:57

    This really depends on what you are trying to measure?

    If are testing something and want to know how long certain pieces go, you could just declare a start and stop time variable, then do a difference between them....

    0 讨论(0)
  • 2020-12-06 06:01

    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.

    0 讨论(0)
提交回复
热议问题