Jaki jest dobry sposób pomiaru czasu wykonywania kodu w VBScript?Jak mierzyć czas wykonywania kodu w języku VBScript lub JavaScript?
A może nie, jak to zrobić w JavaScript?
Jaki jest dobry sposób pomiaru czasu wykonywania kodu w VBScript?Jak mierzyć czas wykonywania kodu w języku VBScript lub JavaScript?
A może nie, jak to zrobić w JavaScript?
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.
W przypadku JavaScriptu należy użyć profilerów Firebug lub IE lub bezpłatnie DynaTrace AJAX edition profiler.
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 ....
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.
Uwaga: Nie 100% dokładne http: // ejohn.org/blog/accuracy-of-javascript-time/ –
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
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/ –
Dzięki Josh !, Szukałem tego artykułu! – CMS
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
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.
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
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. –