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


809

John Carmack hat 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 zu vermeiden, was genau in dem Tweet gemeint ist, 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 von einer oben genannten Software empfangen wird? Fahrerniveau?

Wie lange dauert es im besten Fall, bis ein Pixel auf dem Bildschirm angezeigt wird, gemessen von dem Punkt an, 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 in einen elektrischen Impuls zurückverwandelt. und schließlich von einer anderen Netzwerkkarte interpretiert. Lass 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 den Bildschirm übertragen 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?).


50
Entweder ist er verrückt oder das ist eine ungewöhnliche Situation. Aufgrund der Lichtgeschwindigkeit in Glasfasern können Sie nicht in weniger als 60 Millisekunden Daten von den USA nach Europa übertragen. Ihre Grafikkarte zeigt alle 17 Millisekunden oder so einen neuen Pixel-Bildschirm an. Selbst mit doppelter Pufferung können Sie das Paket noch um einiges übertreffen.
David Schwartz

84
@DavidSchwartz: Du denkst isoliert an die GPU. Ja, die GPU kann eine ganze Menge Arbeit in weniger als 60 ms erledigen. Aber John beschwert sich über die gesamte Kette, an der der Monitor beteiligt ist. Wissen Sie, um wie viel Latenz es sich handelt, von der die Bilddaten auf den Monitor übertragen werden und bis sie auf dem Bildschirm angezeigt werden? Die 17-ms-Zahl ist bedeutungslos und irrelevant. Ja, die GPU erstellt alle 17 ms ein neues Bild und der Bildschirm zeigt alle 17 ms ein neues Bild an. Aber das sagt nichts darüber aus, wie lange das Bild unterwegs war, bevor es angezeigt wurde
jalf

24
Er ist ein Spielprogrammierer, und er sagte, er könne schneller ein Pixel auf den Bildschirm schicken, als ich kann ... also vielleicht die Verzögerung beim Rendern von 3D-Grafiken berücksichtigen? Obwohl das in den meisten Videospielen ziemlich niedrig sein sollte; Sie optimieren die Leistung, nicht die Qualität. Und natürlich ist die Wahrscheinlichkeit sehr hoch, dass er nur übertreibt (da habe ich das Offensichtliche gesagt, glücklich?).
Bob

19
Gehen Sie einige Zeit zu Best Buy und schauen Sie sich alle Fernsehgeräte an, bei denen alle auf den gleichen internen Kanal eingestellt sind. Sogar scheinbar identische Mengen weisen eine merkliche Verzögerung (möglicherweise eine Viertelsekunde) im Verhältnis zueinander auf. Darüber hinaus muss jedoch der gesamte "Zeichnungs" -Zyklus in der Benutzeroberfläche implementiert werden (möglicherweise werden mehrere "Ebenen" des Bildes neu gerendert). Und natürlich, wenn 3-D-Rendering oder ähnliches erforderlich ist, was zu einer erheblichen Verzögerung führt.
Daniel R Hicks

4
Es gibt viel Raum für Spekulationen in Frage, ich glaube nicht, dass es eine perfekte Antwort gibt, wenn Sie nicht wissen, wovon J.Carmack wirklich sprach. Vielleicht war sein Tweet nur ein dummer Kommentar zu einer Situation, der er begegnete.
Baarn

Antworten:


1322

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

Das von mir gemessene Display war ein am Kopf montiertes Sony HMZ-T1- 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 nehme ein Video auf, das sowohl den Gamecontroller als auch den Bildschirm mit einer 240-fps-Kamera zeigt, und zähle dann die Anzahl der Bilder zwischen dem Drücken der Taste und dem Bildschirm, auf dem sich eine Änderung abzeichnet.

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 sieht so aus , 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-LCD-Monitore 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 Teil einer Technologie. Je nach Technologie dauert es 4 bis 20 Millisekunden, bis sich die LCD-Bildschirme tatsächlich ändern. Ein-Chip- LCoS- Displays müssen ein Videobild puffern, um gepackte Pixel in sequentielle Farbebenen umzuwandeln. 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 bei Sony ist auf 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.


216
Ich möchte diese Antwort nicht für übermäßige Off-Topic-Kommentare sperren müssen. Wir sind alle begeistert, dass John diese Antwort gegeben hat, aber wir brauchen keine 25 Kommentare, die alle ihre Dankbarkeit, ihren Unglauben oder ihre Aufregung zum Ausdruck bringen. Danke.
nhinkle

28
Ihr USB-Trigger wird wahrscheinlich als USB-Gerät mit niedriger Geschwindigkeit (Bus-Frames bei 125 usec) ausgeführt und verursacht eine minimale Verzögerung von 8 ms (Hardwareproblem). Vielleicht versuchen Sie stattdessen eine PS2-Tastatur?
Boris

4
@Marcus Lindblom von der Jagd nach, meinst du gelesen? Ich denke in diesem Fall ist es genauso wichtig wie die Nummer , wie er zu seiner Nummer gekommen ist - die Skepsis in Bezug auf den Tweet wird nicht durch das Zitieren einer anderen Nummer angegangen. Auch der Kontext hilft - am direktesten hat ihn dieser spezielle Monitor mit seiner suboptimalen Software geärgert.
Jeremy

13
Es hört sich so an, als ob Sie sagen, wenn LCD-Hersteller behaupten, eine Reaktionszeit von 5 ms zu haben, dann braucht das Raw-Panel möglicherweise Zeit, um sich zu ändern, aber der Monitor fügt einiges mehr Zeit hinzu, um das Signal zu puffern und zu verarbeiten, bevor er es tatsächlich ansteuert LCD. Bedeutet das nicht, dass die Hersteller falsche / irreführende Spezifikationen veröffentlichen?
Psusi


68

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


1
-1 Ich glaube nicht, dass John Carmack einen beschissenen Monitor oder eine Grafikkarte benutzt. Bitte verweisen Sie auf Ihre Behauptung mit glaubwürdigen Quellen.
Baarn

14
Entschuldigung, aber ich sehe immer noch nicht, dass dies die Frage wirklich beantwortet. In dem Zitat heißt es, den Auslöser zu betätigen, und dies bedeutet viel mehr Arbeit, wie z. B. bei der Verarbeitung von Eingaben, beim Rendern von Szenen usw., als nur das Senden eines Pixels an den Bildschirm. Auch die Reaktionsgeschwindigkeit des Menschen ist im Vergleich zur modernen Hardwareleistung relativ schlecht. Die Zeit zwischen dem Gedanken des Mannes , den Abzug zu betätigen und ihn tatsächlich zu betätigen, könnte der Engpass sein.
Konrad Rudolph

2
Der verlinkte Artikel zeigt, dass der Autor dieser Analyse ein spezielles Gerät gekauft hat, mit dem Sie genau sehen können, wann der Knopf gedrückt wurde.
Melikoth

11
@KonradRudolph: Wahrnehmung ist ziemlich seltsames Zeug. Ich habe vor einiger Zeit einen Artikel über einen experimentellen Controller gelesen, der Impulse direkt vom Rückenmark abliest. Die Leute hatten das Gefühl, dass der Computer agierte, bevor sie geklickt hatten, obwohl es ihr eigener Nervenbefehl war, auf den sie reagierten.
Zan Lynx

11
@Zan Lynx: Dies ist ein bekannter Effekt. Google für "Benjamin Libets Half Second Delay". Das menschliche Bewusstsein erfordert eine erhebliche Verarbeitungszeit. Alles, was jetzt passiert, ist in der Vergangenheit passiert. Alle Ihre Sinne geben Ihnen ein "integriertes Multimedia-Erlebnis" einer Veranstaltung von vor einer halben Sekunde. Darüber hinaus scheinen Ereignisse vom Gehirn "zeitgestempelt" zu werden. Eine direkte Hirnstimulation muss gegenüber einer taktilen Stimulation verzögert werden, damit der Proband die Empfindungen als simultan meldet!
Kaz

35

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, die den Bildschirm ausfüllt, und zeichnen Sie sie auf. Man kann eine Sekunde oder mehr zurück sein. Es ist etwas, das LCD-Hersteller verstärkt haben, seit Gamer usw. es mehr bemerkt haben.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.