John Carmack napisał na Twitterze ,
Mogę wysłać pakiet IP do Europy szybciej niż mogę wysłać piksel na ekran. Jak leci?
A gdyby to nie był John Carmack, zapisałbym to jako „głupie interweny”.
Ale to jest John Carmack.
Jak to może być prawda?
Aby uniknąć dyskusji na temat tego, co dokładnie oznacza w tweecie, chciałbym uzyskać odpowiedź:
Ile czasu zajmuje, w najlepszym przypadku, przesłanie pojedynczego pakietu IP z serwera w USA do jakiegoś miejsca w Europie, mierząc od momentu uruchomienia pakietu przez oprogramowanie, aż do momentu otrzymania go przez oprogramowanie powyżej poziom kierowcy?
Ile czasu zajmuje w najlepszym przypadku wyświetlenie piksela na ekranie, mierzone od momentu, w którym oprogramowanie powyżej poziomu sterownika zmienia wartość tego piksela?
Nawet zakładając, że połączenie transatlantyckie jest najlepszym kablem światłowodowym, jaki można kupić za pieniądze, i że John siedzi tuż obok swojego dostawcy usług internetowych, dane nadal muszą być zakodowane w pakiecie IP, dostać się z pamięci głównej na kartę sieciową , stamtąd przez kabel w ścianie do innego budynku, prawdopodobnie przeskoczy tam kilka serwerów (załóżmy, że potrzebuje tylko jednego przekaźnika), zostanie fotonizowany przez ocean, przekształcony z powrotem w impuls elektryczny przez fotosensor, i ostatecznie zinterpretowana przez inną kartę sieciową. Zatrzymajmy się tam.
Jeśli chodzi o piksel, jest to proste słowo maszynowe, które jest przesyłane przez gniazdo PCI Express, zapisywane w buforze, a następnie spuszczane na ekran. Nawet biorąc pod uwagę fakt, że „pojedyncze piksele” prawdopodobnie powodują przesłanie bufora całego ekranu na ekran, nie rozumiem, jak to może być wolniejsze: to nie tak, że bity są przesyłane „jeden po drugim” - raczej one to kolejne impulsy elektryczne, które są przekazywane bez opóźnień między nimi (prawda?).