Qual è un buon modo per misurare il tempo di esecuzione del codice in VBScript?Come misurare il tempo di esecuzione del codice in VBScript o JavaScript?
Oppure, in caso contrario, come farlo in JavaScript?
Qual è un buon modo per misurare il tempo di esecuzione del codice in VBScript?Come misurare il tempo di esecuzione del codice in VBScript o JavaScript?
Oppure, in caso contrario, come farlo in JavaScript?
Per VBScript è possibile utilizzare Timer: (. Cioè per un ambiente ASP)
StartTime = Timer()
EndTime = Timer()
Response.Write("Seconds to 2 decimal places: " & FormatNumber(EndTime - StartTime, 2))
Per JavaScript è possibile utilizzare Data:
var start = new Date().getTime()
alert("Milliseconds: " + (new Date().getTime() - start))
Firebug ha anche un profiler per JavaScript.
Per JavaScript, utilizzare i profilatori Firebug o IE o gratuito DynaTrace AJAX edition profiler.
Questo dipende davvero da cosa stai provando a misurare?
Se stanno testando qualcosa e vogliono sapere quanto tempo alcuni pezzi vanno, si può solo dichiarare una start e stop variabile tempo, poi fare una differenza tra loro ....
d = new Date();
x = 0;
for (i = 0; i < 1e7; ++i) { x += i; }
d2 = new Date();
d2 - d
12296
Utilizzare l'oggetto Date
, che restituisce uno valueOf()
in millisecondi dal 1 ° gennaio 1970. È quindi possibile sottrarre i tempi per ottenere il tempo trascorso in millisecondi.
Nota: non al 100% accurato http: // ejohn.org/blog/accurate-of-javascript-time/ –
Per JavaScript, io mi consiglia di utilizzare un profiler, come quello incorporato in Firebug:
alt text http://getfirebug.com/screenScript-profile.gif
Altre alternative possono essere quello incluso in Google Chrome, o IE8
Se si desidera farlo a livello di programmazione, è possibile utilizzare gli oggetti per ottenere una differenza di orario:
var startTime = new Date();
// ...
// ...
var endTime = new Date();
var delta = endTime - startTime; // difference in milliseconds
Nota: utilizzando l'approccio Date, si aspetti che la precisione dei tempi sia al massimo entro 15ms (almeno su Windows): http://ejohn.org/blog/ accurate-of-javascript-time/ –
Grazie Josh !, stavo cercando quell'articolo! – CMS
Ci si possono aspettare gli stessi problemi di accuratezza in un firebug come si fa nella normale esecuzione di JavaScript. Ha anche il problema di un effetto osservatore, rallentando il tuo JavaScript perché viene eseguito nello stesso thread UI del browser che fa il javascript. – Annie
This è un grande articolo sul tempismo JavaScript, tratto dal libro "Anche siti Web più veloci". Due cose da tenere a mente sono che gli oggetti Data JavaScript hanno spesso una risoluzione di 15 ms (varia a seconda del browser e del sistema operativo) e la maggior parte dei profiler ha un observer effect. Si noti che Google Speed Tracer (nuovo poiché l'articolo è stato pubblicato) esaurisce il processo e raccoglie i dati in modo asincrono per ridurre al minimo l'effetto dell'osservatore.
trovato il perfetto funzionamento con una corretta Ore/Minuti/Sec formattazione qui: https://social.technet.microsoft.com/wiki/contents/articles/633.vbscript-determine-script-execution-time.aspx
Usage:
dtmStartTime = Timer
Wscript.Echo "Hello, World!"
Wscript.Sleep 1000
Wscript.Echo "Script completed in " & GetElapsedTime
Funzione:
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 c'è stata una grande quantità di risposte qui. Penso che il metodo "StartTime = Timer() EndTime = Timer()" funzionerà al meglio per me. Non ho bisogno di nulla di eccessivamente complicato o raffinato e questo funziona per i miei scopi. Grazie. –