2017-03-20 7 views
0

Dieser js-Code tut praktisch nichts, aber es braucht Zeit zu laufen. Nicht nur, dass die Zeit bei jedem Lauf variiert.Warum braucht es Zeit, um nichts zu tun?

<!DOCTYPE html> 
 
<html> 
 
<head><title>Measure Time</title></head> 
 
<body> 
 
<script> 
 
var t0 = performance.now(); 
 
//Literally Nothing 
 
var t1 = performance.now(); 
 
document.write((t1-t0)+" ms"); 
 
</script> 
 
</body> 
 
</html>

+3

Es gibt mir 0ms hier: https://jsfiddle.net/bt6dejza/ Sie fügen sie zusammen, nicht den Unterschied zu finden ... – Li357

+0

Geändert zu t1-t0 und noch Zeit variiert – nightlynutria

+7

Ja, nun ja, es ist nicht tun * buchstäblich nichts *. Rufen Sie 'performance.now' ist * etwas *. –

Antwort

4

Es braucht Zeit, zu laufen, weil alles in Computern ausgeführt werden, eine Art Zeit in Anspruch nimmt.

Dies könnte einen Browser enthalten, der Ihr Skript analysiert und es als Code ausführt (da Sie es in ASCII bereitstellen). Dies könnte die Zuweisung von Speicherplatz für Variablen oder das Hinzufügen eines Funktionsaufrufs zu einem Aufruf-Stack beinhalten.

Performance.now erhält die aktuelle Zeit, die einen Systemaufruf erfordert, wenn ich mich nicht irre. Das bedeutet, dass der Browser das Betriebssystem bitten muss, ihm mitzuteilen, wie hoch die aktuelle Uhrzeit ist.

Der Hauptgrund, warum die Laufzeit variiert, ist jedoch aufgrund der Planung.

Es ist möglich, dass der Browser diese zwei Zeilen nicht gleichzeitig hintereinander ausführt. Der Browser kann eine Zeile laufen, sich etwas Zeit nehmen, um etwas anderes zu tun, dann zurückkommen und das zweite ausführen. Es ist möglich, dass der Browser versucht, beide Zeilen nacheinander auszuführen, aber das BS unterbricht die Ausführung des Codes, den der Browser ausführen möchte, damit ein anderes Programm es tun kann.

Es kann scheinen, als ob Ihr Computer eine Menge Dinge zur gleichen Zeit tun kann, aber realistisch gesehen kann jeder Prozessorkern nur ein Programm gleichzeitig ausführen. Ihr Computer lässt es so erscheinen, als würden viele Dinge gleichzeitig passieren, indem Sie sehr schnell zwischen Programmen wechseln.

Die Zeit, die jedes Programm benötigt, hängt von vielen Faktoren ab, die von der Person bestimmt werden, die das Betriebssystem geschrieben hat. Aus diesem Grund ist es sehr schwierig vorherzusagen, wie lange der Code in Echtzeit ausführen wird.

+1

Das war die Antwort, die ich suchte. Danke an alle. – nightlynutria

Verwandte Themen