Что такое хороший способ измерения времени выполнения кода в VBScript?Как измерить время выполнения кода в VBScript или JavaScript?
Или не удается это сделать в JavaScript?
Что такое хороший способ измерения времени выполнения кода в VBScript?Как измерить время выполнения кода в VBScript или JavaScript?
Или не удается это сделать в JavaScript?
Для VBScript вы можете использовать таймер: (., Что является для среды ASP)
StartTime = Timer()
EndTime = Timer()
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
Или ASP Profiler
Для JavaScript вы можете использовать Дата:
var start = new Date().getTime()
alert("Milliseconds: " + (new Date().getTime() - start))
Firebug также имеет профилировщик JavaScript.
Для использования JavaScript воспользуйтесь профилировщиками Firebug или IE или бесплатными DynaTrace AJAX edition profiler.
Это действительно зависит от того, что вы пытаетесь измерить?
Если тестируют что-то и хотят знать, как долго определенные части идут, вы могли бы просто объявить начальную и конечную временную переменную, а затем сделать разницу между ними ....
d = new Date();
x = 0;
for (i = 0; i < 1e7; ++i) { x += i; }
d2 = new Date();
d2 - d
12296
Используйте Date
объект , который возвращает valueOf()
в миллисекундах с 1 января 1970 года. Затем вы можете вычесть время, чтобы получить истекшее время в миллисекундах.
Примечания: Не 100% точный http: // ejohn.org/blog/precision-of-javascript-time/ –
Для JavaScript, я бы порекомендовал вам использовать профайлер, как один встроенный в Firebug:
alt text http://getfirebug.com/screenScript-profile.gif
Другие альтернативы могут быть один в комплекте с Google Chrome или IE8
Если вы хотите сделать это программно, вы можете использовать Date
объекты, чтобы получить разницу во времени:
var startTime = new Date();
// ...
// ...
var endTime = new Date();
var delta = endTime - startTime; // difference in milliseconds
Примечание: используя подход «Дата», ожидайте, что точность времени будет в лучшем случае в пределах 15 мс (по крайней мере в Windows): http://ejohn.org/blog/ точность-of-javascript-time/ –
Спасибо, Джош !, Я искал эту статью! – CMS
В Firebug вы можете ожидать тех же ошибок, что и при обычном выполнении JavaScript. Он также имеет проблему эффекта наблюдателя, замедляя работу вашего JavaScript, поскольку он работает в одном и том же потоке пользовательского интерфейса браузера, который делает javascript. – Annie
This - отличная статья о сроках JavaScript, из книги «Даже более быстрые веб-сайты». Две вещи, о которых следует помнить, - это то, что объекты JavaScript Date часто имеют разрешение до 15 мс (это зависит от браузера и операционной системы), а большинство профилировщиков имеют observer effect. Обратите внимание, что Google Speed Tracer (новый с момента публикации статьи) заканчивается и собирает данные асинхронно, чтобы минимизировать эффект наблюдателя.
Найдены идеальные функции с правильными Часами/Mins/СЕК форматирования здесь: 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
Ничего себе, здесь была отличная партия ответов. Я думаю, что метод StartTime = Timer() EndTime = Timer() будет работать лучше всего для меня. Мне не нужно ничего слишком сложного или тонкого подробного, и это работает для моих целей. Благодарю. –