2009-12-31 25 views

Respuesta

37

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)) 

O ASP Profiler

JavaScript puede utilizar Fecha:

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

Firebug también tiene una profiler para JavaScript.

+0

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. –

0

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 ....

0
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.

+0

Nota: No es 100% exacto http: // ejohn.org/blog/accuracy-of-javascript-time/ –

4

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 
+3

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/ –

+0

Gracias Josh !, ¡Estaba buscando ese artículo! – CMS

+0

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

0

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.

1

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 
Cuestiones relacionadas