Frage Transatlantic Ping schneller als das Senden eines Pixels an den Bildschirm?


John Carmack  getwittert,

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

Und wenn das nicht John Carmack wäre, würde ich es unter "die Interwebs albern" einreichen.

Aber das ist John Carmack.

Wie kann das wahr sein?

Um Diskussionen darüber zu vermeiden, was genau im Tweet gemeint ist, möchte ich beantwortet werden:

Wie lange dauert es im besten Fall, ein einziges IP-Paket von einem Server in den USA nach Europa zu schicken, gemessen ab dem Zeitpunkt, an dem eine Software das Paket auslöst, bis zu dem Punkt, an dem es von einer Software empfangen wird Treiberlevel?

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


Selbst wenn man annimmt, dass die transatlantische Verbindung das feinste Glasfaserkabel ist, das man kaufen kann, und dass John direkt neben seinem ISP sitzt, müssen die Daten noch in einem IP-Paket verschlüsselt vom Hauptspeicher auf seine Netzwerkkarte übertragen werden , von dort durch ein Kabel in der Wand in ein anderes Gebäude, wird wahrscheinlich über ein paar Server dort springen (aber nehmen wir an, dass es nur ein Relais braucht), wird photonisiert über den Ozean, umgewandelt in einen elektrischen Impuls durch einen Photosensor, und schließlich von einer anderen Netzwerkkarte interpretiert. Lass uns dort aufhören.

Für das Pixel ist dies ein einfaches Maschinenwort, das über den PCI-Express-Slot gesendet und in einen Puffer geschrieben wird, der dann auf den Bildschirm geleert 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 das langsamer sein kann: Es ist nicht so, dass die Bits "eins nach eins" übertragen werden sind aufeinanderfolgende elektrische Impulse, die ohne Latenz zwischen ihnen übertragen werden (richtig?).


797
2018-05-01 09:30


Ursprung


Entweder ist er verrückt oder das ist eine ungewöhnliche Situation. Aufgrund der Lichtgeschwindigkeit in der Glasfaser können Daten aus den USA nicht in weniger als etwa 60 Millisekunden nach Europa transportiert werden. Auf Ihrer Videokarte wird alle 17 Millisekunden ein ganz neuer Bildschirm mit Pixeln ausgegeben. Selbst mit doppelter Pufferung können Sie das Paket immer noch um einiges schlagen. - David Schwartz
@DavidSchwartz: Du denkst isoliert an die GPU. Ja, die GPU kann eine Menge Arbeit in weniger als 60 ms erledigen. Aber John beschwert sich über die gesamte Kette, die den Monitor betrifft. Weißt du, wieviel Latenz beteiligt ist, von den Bilddaten, die auf den Monitor übertragen werden und bis sie auf dem Bildschirm angezeigt werden? Die 17ms-Figur ist bedeutungslos und irrelevant. Ja, die GPU erstellt alle 17 ms ein neues Bild, und auf dem Bildschirm wird alle 17 ms ein neues Bild angezeigt. Aber das sagt nichts darüber aus, wie lange das Bild unterwegs war, bevor es angezeigt wurde - jalf
Er ist ein Spieleprogrammierer und er sagte schneller als ich kann ein Pixel an den Bildschirm senden... so vielleicht für 3D-Grafik Rendering Verzögerung Rechnung tragen? Obwohl das in den meisten Videospielen ziemlich niedrig sein sollte; Sie optimieren die Leistung, nicht die Qualität. Und natürlich gibt es das sehr hohe Chance, dass er nur übertreibt (dort, ich erklärte das offensichtliche, glücklich?). - Bob
Gehen Sie zu Best Buy Zeit und schauen Sie sich alle Fernsehgeräte an, wo sie alle auf denselben Inhouse-Kanal eingestellt sind. Selbst scheinbar identische Sätze werden eine merkliche Verzögerung (vielleicht eine viertel Sekunde) zueinander haben. Aber darüber hinaus muss der gesamte "Draw" -Zyklus innerhalb der Benutzeroberfläche implementiert werden (was das erneute Rendern mehrerer "Schichten" des Bildes beinhalten kann). Und natürlich, wenn 3-D-Rendering oder etwas ähnliches erforderlich ist, das eine signifikante Verzögerung hinzufügt. - Daniel R Hicks
Es gibt viel Platz für Spekulationen in Frage, ich glaube nicht, dass es eine perfekte Antwort gibt, wenn Sie nicht wissen, worüber J.Carmack wirklich gesprochen hat. Vielleicht war sein Tweet nur ein blöder Kommentar zu einer Situation, der er begegnete. - Baarn


Antworten:


Die Zeit zum Senden eines Pakets an einen Remote-Host beträgt die Hälfte der Zeit, die von ping gemeldet wird, die eine Umlaufzeit misst.

Das Display, das ich vermessen habe, war ein Sony HMZ-T1 Head-Mounted-Display an einen PC angeschlossen.

Um die Anzeige-Latenz zu messen, habe ich ein kleines Programm, das in einer Spin-Schleife sitzt, einen Game-Controller abfragt, eine Clear-Taste in eine andere Farbe setzt und bei jedem Drücken einer Taste die Puffer wechselt. I Video-Aufnahme zeigt sowohl den Game-Controller und den Bildschirm mit einer 240 fps Kamera, dann zählen Sie die Anzahl der Frames zwischen der Taste gedrückt wird und der Bildschirm zu zeigen, eine Änderung zu zeigen.

Der Gamecontroller wird bei 250 Hz aktualisiert, aber es gibt keinen direkten Weg, um die Latenz auf dem Eingangspfad zu messen (ich wünschte, ich könnte noch Dinge an einen parallelen Port anschließen und Sam / In-Befehle verwenden). Als Kontrollexperiment mache ich den gleichen Test auf einem alten CRT-Display mit einem 170 Hz Vertikalrücklauf. Aero und mehrere Monitore können eine zusätzliche Latenz verursachen, aber unter optimalen Bedingungen sehen Sie normalerweise eine Farbänderung, die an einem Punkt auf dem Bildschirm (vsync deaktiviert) zwei 240-Hz-Frames beginnt, nachdem die Schaltfläche ausfällt. Es scheint, dass es ungefähr 8 ms Latenzzeit gibt USB-HID Verarbeitung, aber ich möchte das in Zukunft besser merken.

Es ist nicht ungewöhnlich, dass Desktop-LCD-Monitore über 10 240-Hz-Frames verfügen, um Änderungen auf dem Bildschirm anzuzeigen. Die Sony HMZ lag im Durchschnitt bei 18 Frames oder 70+ Millisekunden.

Dies war in einem Multimonitor-Setup, so dass ein paar Frames die Schuld des Fahrers sind.

Eine gewisse Latenz ist einer Technologie innewohnend. LCD-Panels benötigen 4-20 Millisekunden, um sich tatsächlich zu ändern, abhängig von der Technologie. Einzelchip LCoS Displays müssen einen Video-Frame puffern, um von gepackten Pixeln in sequentielle Farbebenen zu konvertieren. Laser-Raster-Anzeigen benötigen eine gewisse Pufferung, um von Raster-Rückkehr- zu Hin-und-Her-Abtastmustern zu konvertieren. Ein Frame-Sequential- oder Top-Bottom-Split-Stereo-3D-Display kann die Hälfte der Zeit nicht im mittleren Frame aktualisieren.

OLED Displays sollten zu den Besten gehören, wie ein eMagin Z800, die mit einer 60 Hz CRT in Latenz vergleichbar ist, besser als jede andere nicht-CRT, die ich getestet habe.

Die schlechte Leistung bei Sony ist auf schlechte Softwareentwicklung zurückzuführen. Einige TV-Funktionen, wie Bewegungsinterpolation, erfordern das Puffern mindestens eines Rahmens und können von mehr profitieren. Andere Features, wie Floating-Menüs, Formatkonvertierungen, Inhaltsschutz usw., können in einer Streaming-Art implementiert werden, aber der einfache Ausweg besteht darin, einfach zwischen jedem Subsystem zu puffern, was in einigen Systemen bis zu einem halben Dutzend Frames betragen kann .

Das ist sehr bedauerlich, aber es ist alles reparierbar, und ich hoffe, dass ich mich in Zukunft mehr auf die Latenz der Display-Hersteller stützen kann.


1305
2018-05-01 14:24



Ich möchte diese Antwort nicht für zu viele Off-Topic-Kommentare sperren müssen. Wir sind alle begeistert, dass John diese Antwort gegeben hat, aber wir brauchen nicht 25 Kommentare, die alle ihre Dankbarkeit, Ungläubigkeit oder Aufregung ausdrücken. Vielen Dank. - nhinkle♦
Ihr USB-Trigger läuft wahrscheinlich als Low-Speed-USB-Gerät (Bus Frames bei 125usec) und verursacht eine minimale Verzögerung von 8ms (Hardwareproblem). Vielleicht versuchen Sie stattdessen eine PS2-Tastatur? - Boris
@Marcus Lindblom durch die Jagd nach, Sie meinen, lesen? Ich denke in diesem Fall, Wie er ist zu seiner Nummer genauso wichtig wie die Nummer - die Skepsis gegenüber dem Tweet wird nicht mit einer anderen Nummer angesprochen. Auch der Kontext hilft - am meisten ärgerte ihn dieser spezielle Monitor mit seiner nicht optimalen Software. - Jeremy
Es klingt wie Sie sagen, dass, wenn LCD Hersteller sagen, eine 5 ms Reaktionszeit, das kann Zeit sein, die das rohe Panel zu ändern braucht, aber der Monitor fügt ein bisschen mehr Zeit Pufferung und Verarbeitung des Signals, bevor es tatsächlich fährt die LCD. Bedeutet das nicht, dass die Hersteller falsche / irreführende Angaben veröffentlichen? - psusi
@psusi doubledeej.blogspot.com/2009/07/...  zdnet.com/blog/ou/...  gizmodo.com/5669331/why-most-hardware-specs-are-total-bullshit  maximumpc.com/article/features/display_myths_shattered - Dan Neely


Einige Monitore können erhebliche Eingabefehler haben

Accounting für eine tolle Internetverbindung im Vergleich zu einem beschissenen Monitor und Grafikkarte Combo ist möglich

Quellen:

Konsolenspiel: Der Lag Faktor • Seite 2

Also, bei 30 FPS erhalten wir eine Grundleistung von acht Bildern / 133 ms, aber in   der zweite Clip, wo das Spiel auf 24FPS gesunken ist, gibt es eine klare   12 Frames / 200ms Verzögerung zwischen dem Abdrücken und Niko   Beginn der Schrotflintenanimation. Das sind 200ms plus die   zusätzliche Verzögerung von Ihrem Bildschirm. Autsch.

Ein Display kann weitere 5-10ms hinzufügen

So kann eine Konsole bis zu 210ms Verzögerung haben

Und laut Davids Kommentar sollte der beste Fall ungefähr 70ms für das Senden eines Pakets sein


67
2018-05-01 10:26



-1 Ich glaube nicht, dass John Carmack einen beschissenen Monitor oder eine Videokarte benutzt. Bitte verweisen Sie Ihren Anspruch mit glaubwürdigen Quellen. - Baarn
Tut mir leid, aber ich sehe immer noch nicht, dass dies wirklich die Frage beantwortet. Das Zitat erzählt von "Ziehen des Auslösers" und dies impliziert viel mehr Arbeit, als in der Eingabeverarbeitung, Szenen-Rendering usw., als nur ein Pixel auf den Bildschirm zu senden. Außerdem ist die menschliche Reaktionsgeschwindigkeit im Vergleich zur modernen Hardwareleistung relativ mies. Die Zeit zwischen dem Kerl Denken Er drückte den Abzug und zog ihn tatsächlich an sich. Das könnte der Flaschenhals sein. - Konrad Rudolph
Der verlinkte Artikel zeigt, dass der Autor dieser Analyse ein spezielles Gerät gekauft hat, das Ihnen genau zeigen kann, wann die Taste gedrückt wurde, also glaube ich nicht, dass sie nur die Zahlen anwachsen. - Melikoth
@KonradRudolph: Wahrnehmung ist ziemlich komisches Zeug. Ich habe vor einiger Zeit einen Artikel über einen experimentellen Controller gelesen, der Impulse direkt vom Rückenmark abliest. Die Leute würden fühlen, dass der Computer agiert hat, bevor sie geklickt haben, obwohl es ihr eigener Nervenkommandos war, auf den er reagierte. - Zan Lynx
@ Zan Lynx: Dies ist ein bekannter Effekt. Google für "Benjamin Libet's Half Second Delay". Das menschliche Bewusstsein erfordert eine erhebliche Bearbeitungszeit. Alles, was denkt, passiert jetzt tatsächlich in der Vergangenheit. Alle Ihre Sinne geben Ihnen ein "integriertes Multimedia-Erlebnis" einer Veranstaltung vor einer halben Sekunde. Darüber hinaus scheinen Ereignisse vom Gehirn "zeitgestempelt" zu sein. Eine direkte Hirnstimulation muss im Vergleich zu einer taktilen Stimulation verzögert werden, damit das Subjekt die Empfindungen gleichzeitig meldet! - Kaz


Es ist sehr einfach, Input-Lag auf Monitoren zu demonstrieren, einfach ein LCD neben ein CRT zu halten und eine Uhr oder eine Animation anzuzeigen, die den Bildschirm füllt und aufzeichnet. Man kann eine Sekunde oder mehr hinter sich haben. Es ist etwas, das LCD-Hersteller verschärft haben, da Spieler usw. es mehr bemerkt haben.

Z.B. Youtube Video: Eingabe Lag Test Vizio VL420M


33
2018-05-03 10:31