it-swarm.com.de

Transatlantic Ping schneller als das Senden eines Pixels auf den Bildschirm?

John Carmackhat getwittert ,

Ich kann ein IP-Paket schneller nach Europa senden, als ich ein Pixel an den Bildschirm senden kann. Wie geht es dir?

Und wenn dies nicht John Carmack wäre, würde ich es unter "Die dummen Zwischenwebs" ablegen.

Aber das ist John Carmack.

Wie kann das wahr sein?

Um Diskussionen darüber, was genau im Tweet gemeint ist, zu vermeiden, möchte ich folgende Antwort erhalten:

Wie lange dauert es im besten Fall, bis ein einzelnes IP-Paket von einem Server in den USA an einen anderen Ort in Europa gesendet wird, gemessen ab dem Zeitpunkt, an dem eine Software das Paket auslöst, bis zu dem Zeitpunkt, an dem es empfangen wird eine Software über Treiberlevel?

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


Selbst wenn die transatlantische Verbindung das beste Glasfaserkabel ist, das man für Geld kaufen kann, und John direkt neben seinem ISP sitzt, müssen die Daten noch in einem IP-Paket verschlüsselt werden, um vom Hauptspeicher auf seine Netzwerkkarte zu gelangen von dort durch ein Kabel in der Wand in ein anderes Gebäude, wird wahrscheinlich über ein paar Server dort hüpfen (aber nehmen wir an, dass es nur ein einziges Relais benötigt), wird über den Ozean photonisiert und von einem Photosensor wieder in einen elektrischen Impuls umgewandelt. und schließlich von einer anderen Netzwerkkarte interpretiert. Lassen Sie uns dort anhalten.

Das Pixel ist ein einfaches Maschinenwort, das über den PCI-Express-Steckplatz gesendet und in einen Puffer geschrieben wird, der dann auf dem Bildschirm angezeigt wird. Selbst wenn man bedenkt, 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 "nacheinander" übertragen werden, sondern sie sind aufeinanderfolgende elektrische Impulse, die ohne Latenz zwischen ihnen übertragen werden (oder?).

807
Konrad Rudolph

Die Zeit zum Senden eines Pakets an einen Remote-Host ist die Hälfte der Zeit, die von Ping gemeldet wird. Dabei handelt es sich um eine Umlaufzeit.

Das von mir gemessene Display war ein Sony HMZ-T1 am Kopf montiertes Display, das an einen PC angeschlossen war.

Um die Anzeigelatenz zu messen, habe ich ein kleines Programm, das in einem Spin-Loop sitzt und einen Gamecontroller abfragt, eine andere Farbe löscht und bei jedem Tastendruck die Puffer tauscht. Ich Videoaufzeichnung sowohl die Game-Controller und den Bildschirm mit einer 240 fps Kamera, dann zählt die Anzahl der Frames zwischen dem Knopf gedrückt wird und der Bildschirm zeigt Starten eine Änderung.

Der Gamecontroller wird mit 250 Hz aktualisiert, aber es gibt keine direkte Möglichkeit, die Latenz auf dem Eingangspfad zu messen (ich wünschte, ich könnte noch etwas an einen parallelen Port anschließen und Sam-Anweisungen für Ein-/Ausgang verwenden). Als Kontrollexperiment mache ich den gleichen Test auf einem alten CRT-Display mit einer vertikalen Rückverfolgung von 170 Hz. Aero-Monitore und mehrere Monitore können zu einer zusätzlichen Latenz führen. Unter optimalen Bedingungen wird jedoch in der Regel eine Farbänderung ab einem bestimmten Punkt des Bildschirms (vsync deaktiviert) zwei 240-Hz-Frames nach dem Herunterfahren der Taste angezeigt. Es scheint, als ob 8 ms Latenz durch die USB HID -Verarbeitung vergehen, aber ich möchte dies in Zukunft besser festnageln.

Es ist nicht ungewöhnlich, dass Desktop-Monitore LCD mehr als 10 Bilder mit 240 Hz benötigen, um eine Änderung auf dem Bildschirm anzuzeigen. Die Sony HMZ lag im Durchschnitt bei 18 Bildern oder über 70 Millisekunden.

Dies war in einem Multimonitor-Setup, daher sind ein paar Frames die Schuld des Treibers.

Eine gewisse Latenz ist einer Technologie eigen. LCD - Panels benötigen je nach Technologie 4 bis 20 Millisekunden, um sich tatsächlich zu ändern. Einzelne LCoS - Chips müssen ein Videobild puffern, um von gepackten Pixeln in sequentielle Farbebenen zu konvertieren. Laser-Raster-Displays benötigen eine gewisse Pufferung, um Raster-Return-Scanmuster in Vor- und Zurück-Scanmuster umzuwandeln. Eine Frame-sequentielle oder Top-Bottom-Split-Stereo-3D-Anzeige kann die mittlere Frame-Hälfte der Zeit nicht aktualisieren.

OLED Displays sollten zu den besten gehören, wie ein eMagin Z800 zeigt, der mit einer 60-Hz-CRT-Latenz vergleichbar ist und besser ist als alle anderen von mir getesteten Nicht-CRT-Displays .

Die schlechte Leistung des Sony ist auf eine schlechte Software-Entwicklung zurückzuführen. Einige TV-Funktionen, wie die Bewegungsinterpolation, erfordern das Puffern von mindestens einem Bild und können von mehr profitieren. Andere Funktionen, wie schwebende Menüs, Formatkonvertierungen, Inhaltsschutz usw., könnten auf Streaming-Weise implementiert werden. Der einfache Ausweg besteht jedoch darin, nur zwischen den einzelnen Subsystemen einen Puffer zu erstellen, der in einigen Systemen bis zu einem halben Dutzend Frames stapeln kann .

Das ist sehr bedauerlich, aber es ist alles reparabel, und ich hoffe, dass sich die Displayhersteller in Zukunft mehr auf die Latenz verlassen können.

1318
John Carmack

Einige Monitore können eine erhebliche Eingangsverzögerung aufweisen

Es ist möglich, eine großartige Internetverbindung im Vergleich zu einer Kombination aus einem beschissenen Monitor und einer Grafikkarte zu haben

Quellen:

Konsolenspiele: Der Lag-Faktor • Seite 2

Bei 30 fps erhalten wir eine Ausgangsleistung von acht Bildern/133 ms, aber in dem zweiten Clip, in dem das Spiel auf 24 fps gefallen ist, gibt es eine deutliche Verzögerung von 12 Bildern/200 ms zwischen dem Drücken des Auslösers und dem Beginn der Schussanimation durch Niko. Das sind 200 ms plus die zusätzliche Verzögerung von Ihrem Bildschirm. Autsch.

Ein Display kann weitere 5-10ms hinzufügen

Eine Konsole kann also eine Verzögerung von bis zu 210 ms aufweisen

Und laut Davids Kommentar sollte der beste Fall für das Senden eines Pakets etwa 70 ms betragen

68
Akash

Es ist sehr einfach, die Eingangsverzögerung auf Monitoren zu demonstrieren. Kleben Sie einfach ein LCD neben ein CRT und zeigen Sie eine Uhr oder eine Animation auf dem Bildschirm und zeichnen Sie sie auf. Man kann eine Sekunde oder mehr zurückliegen. Es ist etwas, das LCD Hersteller verstärkt haben, seit Gamer usw. es mehr bemerkt haben.

Z.B. Youtube Video: Eingangsverzögerungstest Vizio VL420M

35
JamesRyan