¿Cuál es una buena manera de medir el tiempo de ejecución del código en VBScript?¿Cómo medir el tiempo de ejecución del código en VBScript o JavaScript?
O, en su defecto, cómo hacerlo en JavaScript?
¿Cuál es una buena manera de medir el tiempo de ejecución del código en VBScript?¿Cómo medir el tiempo de ejecución del código en VBScript o JavaScript?
O, en su defecto, cómo hacerlo en JavaScript?
Para VBScript puede utilizar Timer: (. Es decir, para un entorno ASP)
StartTime = Timer()
EndTime = Timer()
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
JavaScript puede utilizar Fecha:
var start = new Date().getTime()
alert("Milliseconds: " + (new Date().getTime() - start))
Firebug también tiene una profiler para JavaScript.
Para JavaScript, utilice los perfiladores Firebug o IE, o DynaTrace AJAX edition profiler gratis.
Esto realmente depende de lo que está tratando de medir?
Si están probando algo y quieren saber cuánto tiempo van ciertas piezas, que sólo podría declarar un arranque y parada variable de tiempo, y luego hacer una diferencia entre ellos ....
d = new Date();
x = 0;
for (i = 0; i < 1e7; ++i) { x += i; }
d2 = new Date();
d2 - d
12296
Uso del objeto Date
, que devuelve valueOf()
en milisegundos desde el 1 de enero de 1970. Puede restar tiempos para obtener el tiempo transcurrido en milisegundos.
Nota: No es 100% exacto http: // ejohn.org/blog/accuracy-of-javascript-time/ –
JavaScript, yo le recomendaría utilizar un generador de perfiles, como el incorporado en Firebug:
alt text http://getfirebug.com/screenScript-profile.gif
Otras alternativas pueden ser el que viene incluido con Google Chrome, o IE8
Si desea hacerlo mediante programación, puede usar los objetos Date
para obtener una diferencia horaria:
var startTime = new Date();
// ...
// ...
var endTime = new Date();
var delta = endTime - startTime; // difference in milliseconds
Nota: utilizando el enfoque de fecha, se espera que la precisión de los tiempos esté dentro de los 15 ms como máximo (en Windows, al menos): http://ejohn.org/blog/ accuracy-of-javascript-time/ –
Gracias Josh !, ¡Estaba buscando ese artículo! – CMS
Puede esperar los mismos problemas de precisión en un Firebug que en la ejecución normal de JavaScript. También tiene el problema de un efecto de observador, ralentizando su JavaScript porque se ejecuta en el mismo subproceso de IU del navegador que el javascript. – Annie
This es un excelente artículo sobre sincronización de JavaScript, del libro "Sitios web aún más rápidos". Dos cosas a tener en cuenta son que los objetos JavaScript Date a menudo tienen una resolución tan grande como 15 ms (esto varía según el navegador y el sistema operativo), y la mayoría de los profilers tienen un observer effect. Tenga en cuenta que Google Speed Tracer (nuevo desde que se publicó el artículo) se agota y recopila datos de forma asincrónica para minimizar el efecto del observador.
encontró el perfecto funcionamiento con adecuada Horas/formateo minutos/Secs aquí: https://social.technet.microsoft.com/wiki/contents/articles/633.vbscript-determine-script-execution-time.aspx
Uso:
dtmStartTime = Timer
Wscript.Echo "Hello, World!"
Wscript.Sleep 1000
Wscript.Echo "Script completed in " & GetElapsedTime
Función:
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, ha habido un gran lote de respuestas aquí. Creo que el método "StartTime = Timer() EndTime = Timer()" funcionará mejor para mí. No necesito nada demasiado complicado o detallado y esto funciona para mis propósitos. Gracias. –