2009-12-31 13 views

Odpowiedz

37

Dla VBScript można użyć timera: (., Które jest dla środowiska ASP)

StartTime = Timer() 
EndTime = Timer() 
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2)) 

Albo ASP Profiler

Dla JavaScriptu można użyć Data:

var start = new Date().getTime() 
alert("Milliseconds: " + (new Date().getTime() - start)) 

Firebug posiada również profiler dla JavaScript.

+0

Wow, tutaj była wielka partia odpowiedzi. Myślę, że metoda "StartTime = Timer() EndTime = Timer()" będzie dla mnie najlepsza. Nie potrzebuję niczego zbyt skomplikowanego lub szczegółowego, a to działa dla moich celów. Dzięki. –

0

To naprawdę zależy od tego, co próbujesz zmierzyć?

Jeśli testują coś i chcesz wiedzieć, jak długo niektóre kawałki iść, można po prostu ogłosić start i stop zmienną czasową, a następnie zrobić różnicę między nimi ....

0
d = new Date(); 
x = 0; 
for (i = 0; i < 1e7; ++i) { x += i; } 
d2 = new Date(); 
d2 - d 

12296 

korzystania z przedmiotu Date , która zwraca valueOf() w milisekundach od 1 stycznia 1970. Można wtedy odjąć czasy, aby uzyskać upływ czasu w milisekundach.

+0

Uwaga: Nie 100% dokładne http: // ejohn.org/blog/accuracy-of-javascript-time/ –

4

Dla JavaScript, polecam Ci użyć profilera, jak ten wbudowany w Firebug:

alt text http://getfirebug.com/screenScript-profile.gif

Inne alternatywy mogą być z jednej zawartej z Google Chrome lub IE8

Jeśli chcesz zrobić to programowo, możesz użyć obiektów Date, aby uzyskać różnicę czasu:

var startTime = new Date(); 
// ... 
// ... 
var endTime = new Date(); 
var delta = endTime - startTime; // difference in milliseconds 
+3

Uwaga: używając metody Date, należy oczekiwać, że dokładność czasów wynosi co najwyżej 15 ms (w systemie Windows przynajmniej): http://ejohn.org/blog/ accuracy-of-javascript-time/ –

+0

Dzięki Josh !, Szukałem tego artykułu! – CMS

+0

Możesz spodziewać się takich samych problemów z dokładnością w firebugu, jak w normalnym wykonaniu JavaScript. Ma również problem z efektem obserwatora, spowalniając JavaScript, ponieważ działa w tym samym wątku UI przeglądarki, który wykonuje javascript. – Annie

0

This to świetny artykuł na temat czasu JavaScript, z książki "Jeszcze szybsze strony internetowe". Należy pamiętać o tym, że obiekty Data JavaScript często mają rozdzielczość nawet 15 ms (jest to zależne od przeglądarki i systemu operacyjnego), a większość profilerów ma numer observer effect. Zauważ, że Google Speed Tracer (nowy od opublikowania artykułu) kończy się proces i zbiera dane asynchronicznie, aby zminimalizować efekt obserwatora.

1

znalazł idealną funkcję z właściwego Godziny/min/sek formatowania tutaj: https://social.technet.microsoft.com/wiki/contents/articles/633.vbscript-determine-script-execution-time.aspx

Zastosowanie:

dtmStartTime = Timer 
Wscript.Echo "Hello, World!" 
Wscript.Sleep 1000 
Wscript.Echo "Script completed in " & GetElapsedTime 

Funkcja:

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 
Powiązane problemy