Transatlantischer Ping schneller als das Senden eines Pixels an den Bildschirm?

Transatlantischer Ping schneller als das Senden eines Pixels an den Bildschirm?

Johannes Carmack getwittert,

Ich kann ein IP-Paket schneller nach Europa schicken, als ich ein Pixel auf den Bildschirm bringen kann. Wie beschissen ist das denn?

Und wenn das nicht John Carmack wäre, würde ich es unter „das Internet ist albern“ ablegen.

Aber das ist John Carmack.

Wie kann das wahr sein?

Um Diskussionen darüber zu vermeiden, was mit dem Tweet genau gemeint ist, hätte ich gern folgende Antwort:

Wie lange dauert es im besten Fall, ein einzelnes IP-Paket von einem Server in den USA irgendwo in Europa zu versenden, gemessen von dem Zeitpunkt an, an dem eine Software das Paket auslöst, bis zu dem Zeitpunkt, an dem es von einer Software über der Treiberebene empfangen wird?

Wie lange dauert es im besten Fall, bis ein Pixel auf dem Bildschirm angezeigt wird, gemessen ab dem Punkt, an dem eine Software über der Treiberebene den Wert dieses Pixels ändert?


Selbst wenn man davon ausgeht, dass die transatlantische Verbindung das beste Glasfaserkabel ist, das man für Geld kaufen kann, und dass John direkt neben seinem ISP sitzt, müssen die Daten dennoch in ein IP-Paket kodiert werden, vom Hauptspeicher zu seiner Netzwerkkarte gelangen, von dort durch ein Kabel in der Wand in ein anderes Gebäude, werden dort wahrscheinlich über ein paar Server springen (aber nehmen wir an, dass nur ein einziges Relais nötig ist), über den Ozean hinweg photonisiert werden, von einem Photosensor wieder in einen elektrischen Impuls umgewandelt und schließlich von einer anderen Netzwerkkarte interpretiert werden. Lassen Sie uns hier aufhören.

Was das Pixel betrifft, handelt es sich dabei um ein einfaches Maschinenwort, das über den PCI-Express-Steckplatz gesendet und in einen Puffer geschrieben wird, der dann auf den Bildschirm übertragen wird. Selbst wenn man berücksichtigt, dass „einzelne Pixel“ wahrscheinlich dazu führen, dass der gesamte Bildschirmpuffer auf das Display übertragen wird, sehe ich nicht, wie dies langsamer sein kann: Es ist nicht so, dass die Bits „einzeln“ übertragen werden – es sind vielmehr aufeinanderfolgende elektrische Impulse, die ohne Latenz zwischen ihnen übertragen werden (richtig?).

Antwort1

Die zum Senden eines Pakets an einen Remote-Host benötigte Zeit beträgt die Hälfte der vom Ping gemeldeten Zeit, mit der die Roundtrip-Zeit gemessen wird.

Das Display, das ich gemessen habe, war einSony HMZ-T1Head-Mounted-Display, das mit einem PC verbunden ist.

Um die Anzeigelatenz zu messen, habe ich ein kleines Programm, das in einer Spin-Loop-Funktion einen Gamecontroller abfragt, bei jedem Tastendruck eine andere Farbe auswählt und die Puffer austauscht. Ich nehme mit einer 240-fps-Kamera ein Video auf, das sowohl den Gamecontroller als auch den Bildschirm zeigt, und zähle dann die Anzahl der Frames zwischen dem Tastendruck und dem Zeitpunkt, an dem der Bildschirm eine Änderung anzeigt.

Der Gamecontroller aktualisiert mit 250 Hz, aber es gibt keine direkte Möglichkeit, die Latenz auf dem Eingangspfad zu messen (ich wünschte, ich könnte die Dinge immer noch an einen parallelen Port anschließen und In/Out-Sam-Anweisungen verwenden). Als Kontrollexperiment führe ich denselben Test auf einem alten CRT-Display mit einem vertikalen Rücklauf von 170 Hz durch. Aero und mehrere Monitore können zusätzliche Latenz verursachen, aber unter optimalen Bedingungen sehen Sie normalerweise eine Farbänderung, die an einem bestimmten Punkt auf dem Bildschirm beginnt (Vsync deaktiviert), zwei 240-Hz-Frames nachdem die Taste gedrückt wurde. Es scheint, dass es eine Latenz von etwa 8 ms gibt, die durch denUSB-HIDVerarbeitung, aber ich würde das in Zukunft gerne besser festlegen.

Es ist nicht ungewöhnlich, dass Desktop-LCD-Monitore 10+ 240 Hz-Frames benötigen, um eine Änderung auf dem Bildschirm anzuzeigen. Der Sony HMZ benötigte im Durchschnitt etwa 18 Frames oder insgesamt über 70 Millisekunden.

Dies geschah in einer Multimonitor-Konfiguration, daher sind einige Frames auf den Treiber zurückzuführen.

Eine gewisse Latenz ist technologiebedingt. LCD-Panels benötigen je nach Technologie 4 bis 20 Millisekunden, um tatsächlich zu wechseln. Ein einziger ChipLCoSDisplays müssen ein Videobild puffern, um von gepackten Pixeln in sequentielle Farbebenen zu konvertieren. Laserrasterdisplays benötigen eine gewisse Pufferung, um von Rasterrücklauf in hin- und hergehende Scanmuster zu konvertieren. Ein bildsequentielles oder Top-Bottom-Split-Stereo-3D-Display kann die Hälfte der Zeit nicht mitten im Bild aktualisiert werden.

OLEDDisplays sollten zu den besten gehören, wie eineMagin Z800, dessen Latenz mit einer 60-Hz-CRT vergleichbar ist und besser als bei jeder anderen Nicht-CRT, die ich getestet habe.

Die schlechte Leistung des Sony ist auf schlechte Softwareentwicklung zurückzuführen. Einige TV-Funktionen, wie z. B. die Bewegungsinterpolation, erfordern das Puffern von mindestens einem Frame und könnten von mehr profitieren. Andere Funktionen, wie schwebende Menüs, Formatkonvertierungen, Inhaltsschutz usw., könnten als Streaming-Funktion implementiert werden, aber der einfache Ausweg besteht darin, einfach zwischen den einzelnen Subsystemen zu puffern, was bei einigen Systemen bis zu einem halben Dutzend Frames anhäufen kann.

Das ist sehr bedauerlich, aber es lässt sich alles beheben und ich hoffe, dass ich in Zukunft hinsichtlich der Latenz mehr Druck auf die Displayhersteller ausüben kann.

Antwort2

Einige Monitore können eine erhebliche Eingangsverzögerung aufweisen

Wenn man eine tolle Internetverbindung im Vergleich zu einer miesen Kombination aus Monitor und Grafikkarte berücksichtigt, ist es möglich

Quellen:

Konsolenspiele: Der Lag-Faktor • Seite 2

Bei 30 FPS erreichen wir also eine Grundleistung von 8 Bildern/133 ms, aber im zweiten Clip, in dem das Spiel auf 24 FPS gefallen ist, gibt es eine deutliche Verzögerung von 12 Bildern/200 ms zwischen dem Zeitpunkt, an dem ich den Abzug drücke, und Nikos Beginn der Schrotflintenabschussanimation. Das sind 200 ms plus die zusätzliche Verzögerung von Ihrem Bildschirm. Autsch.

Ein Display kann weitere 5-10 ms hinzufügen

Eine Konsole kann also bis zu 210 ms Verzögerung haben

Und laut Davids Kommentar sollte das Senden eines Pakets im besten Fall etwa 70 ms dauern

Antwort3

Es ist ganz einfach, Input-Lags auf Monitoren zu demonstrieren. Stellen Sie einfach einen LCD-Monitor neben einen CRT-Monitor und zeigen Sie eine Uhr oder eine Animation, die den Bildschirm ausfüllt, und zeichnen Sie das Ganze auf. Es kann eine Sekunde oder mehr Verzögerung geben. LCD-Hersteller haben dies verschärft, da Gamer usw. es stärker bemerken.

Z.B.Youtube-Video: Input-Lag-Test Vizio VL420M

verwandte Informationen