Transatlantik ping ekrana bir piksel göndermekten daha hızlı?


809

John Carmack tweeted ,

Avrupa'ya bir IP paketini ekrana piksel gönderdiğimden daha hızlı gönderebilirim. Bu nasıl oldu?

Ve eğer bu John Carmack olmasaydı, “interwebs aptallık” altında dosyalarım.

Ama bu John Carmack.

Bu nasıl doğru olabilir?

Tweet’te tam olarak ne anlama geldiğiyle ilgili tartışmalardan kaçınmak için, cevaplandırmak istediğim şey bu:

En iyi durumda, ABD’deki bir sunucudan Avrupa'da bir yere gönderilen bir IP paketinin, bir yazılımın paketi tetiklediği zamandan, yukarıdaki yazılım tarafından alındığı noktaya kadar ölçülmesi ne kadar sürer? sürücü seviyesi?

En iyi durumda, ekranda görüntülenecek bir pikselin, sürücü düzeyinin üstünde bir yazılımın bu pikselin değerini değiştirdiği noktadan ölçülmesi ne kadar sürer?


Transatlantik bağlantının, paranın satın alabileceği en iyi fiber optik kablo olduğunu ve John'un ISS'sinin hemen yanında oturduğunu farz edersek bile, veriler hala bir IP paketinde kodlanmak zorundadır, ana bellekten ağ kartına geçmelidir. oradan duvardaki bir kablodan başka bir binaya, muhtemelen orada birkaç sunucuya zıplayacaktır (ancak tek bir röleye ihtiyaç duyduğunu varsayalım), okyanus boyunca fotonize olur, bir fotosensör tarafından elektriksel bir dürtü haline getirilir, ve nihayet başka bir ağ kartı tarafından yorumlandı. Orada duralım.

Piksel gelince, bu, PCI ekspres yuvasına gönderilen ve arabellek içine yazılan ve ardından ekrana basılan basit bir makine kelimesidir. “Tek piksellerin” muhtemelen tüm ekran arabelleğinin ekrana aktarılmasına neden olduğu gerçeğini hesaba katarsak, bunun nasıl daha yavaş olabileceğini göremiyorum: bitlerin “tek tek” aktarılması gibi değil - daha doğrusu bunlar arasında gecikme olmadan aktarılan ardışık elektrik darbeleridir (doğru?).


50
Ya o deli ya da bu alışılmadık bir durum. Fiberdeki ışığın hızı nedeniyle, ABD’den Avrupa’ya yaklaşık 60 milisaniyeden daha az bir sürede veri alamazsınız. Video kartınız, her 17 milisaniyede bir, tamamen yeni bir piksel ekranı ortaya koyuyor. Çift tamponlamada bile paketi biraz daha yenebilirsiniz.
David Schwartz

84
@DavidSchwartz: GPU’yu ayrı ayrı ele almayı düşünüyorsun. Evet, GPU 60ms'den az bir sürede çok fazla iş yapabilir. Ancak John, monitörü içeren tüm zincirden şikayetçi. Görüntü verilerinden monitöre iletilen ve ekranda görünene kadar ne kadar gecikme olduğunu biliyor musunuz? 17ms rakam anlamsız ve ilgisizdir. Evet, GPU her 17 ms'de bir yeni görüntü hazırlar ve evet, ekranda her 17 ms'de bir yeni görüntü görüntülenir. Fakat bu, görüntünün gösterilmeden önce ne kadar süredir yolda olduğu konusunda hiçbir şey ifade etmiyor
jalf

24
O bir oyun programcısı, ve dedi daha hızlı ben ekrana bir pikseli gönderebilir gecikme render 3D grafikler için belki hesap ...? Çoğu video oyununda bu oldukça düşük olsa da; kaliteyi değil performansı optimize ederler. Ve tabii ki, sadece abartması çok yüksek bir ihtimal var (orada açık ve mutlu olduğunu söyledim?).
Bob

19
En İyisine Git Bir süre satın alın ve tüm TV setlerini izleyin; bunların hepsinde aynı kanalda ayarlanmışlar. Görünüşe göre özdeş kümeler bile birbirlerine göre fark edilebilir (belki de çeyrek saniyelik) bir gecikmeye sahip olacaktır. Ancak bunun ötesinde, tüm "çizim" döngüsünü Kullanıcı Arabiriminde uygulamak zorunda (bu, görüntünün birkaç "katmanının yeniden oluşturulmasını içerebilir). Ve, tabii ki, eğer 3-D renderleme veya bunun gibi bir şey gerekliyse, önemli bir gecikme ekler.
Daniel R Hicks

4
Söz konusu spekülasyon için çok fazla alan var, J.Carmack'in gerçekte neden bahsettiğini bilmiyorsanız mükemmel bir cevap olduğunu sanmıyorum. Belki de tweet'i karşılaştığı durum hakkında aptalca bir yorumdu.
Baarn

Yanıtlar:


1321

Bir paketi uzaktaki bir ana bilgisayara gönderme süresi, gidiş dönüş süresini ölçen, ping tarafından bildirilen sürenin yarısıdır.

Ölçmekte olduğum ekran PC'ye bağlı bir Sony HMZ-T1 başa takılı ekrandı .

Ekran gecikmesini ölçmek için, bir oyun kumandasına oy veren, farklı bir renge temizleyen ve bir düğmeye her basıldığında tampon değiştiren küçük bir programım var. Hem oyun kumandasını hem de ekranı 240 fps kamerayla gösteren video kaydı yapıyorum, ardından basılan buton ile ekran arasında değişiklik göstermeye başlayan ekran arasındaki kare sayısını sayın.

Oyun kumandası 250 Hz'de güncellenir, ancak giriş yolundaki gecikmeyi ölçmenin doğrudan bir yolu yoktur (keşiflerimi hala paralel bir porta bağlayıp, Sam giriş / çıkış talimatlarını kullanabilseydim). Bir kontrol deneyi olarak, aynı testi 170 Hz'lik dikey bir geri çekilme ile eski bir CRT ekranında da yapıyorum. Aero ve çoklu monitörler ekstra gecikme sağlayabilir, ancak en iyi koşullar altında, genellikle düğmeden aşağıya doğru iki 240 Hz kare (ekranda vync devre dışı) başlayan bir renk değişikliği göreceksiniz. USB HID işleminden geçen 8 ms'lik gecikme var gibi gözüküyor , ancak gelecekte daha iyi bunu düzeltmek istiyorum.

Masaüstü LCD monitörlerin ekranda bir değişiklik göstermesi 10 + 240 Hz kare aldığını görmek nadir değildir. Sony HMZ, ortalama 18 kare ya da 70+ toplam milisaniye civarında.

Bu bir multimonitor kurulumundaydı, bu yüzden birkaç kare sürücünün hatası.

Bazı gecikmeler bir teknolojiye özgüdür. LCD paneller, teknolojiye bağlı olarak değişmek üzere 4-20 milisaniye alır. Tek çipli LCoS ekranlar, dolu piksellerden ardışık renk düzlemlerine dönüştürmek için bir video karesini tamponlamalıdır. Lazer raster ekranları, raster dönüşünden ileri ve geri tarama düzenlerine dönüştürmek için bir miktar tamponlamaya ihtiyaç duyar. Bir kare sıralı veya üst-alt bölünmüş stereo 3D ekran, yarı çerçevenin orta çerçevesini güncelleyemez.

OLED ekranlar, test edilen diğer CRT olmayan tüm ürünlerden daha iyi bir gecikmeyle 60 Hz CRT ile karşılaştırılabilir olan bir eMagin Z800 tarafından gösterildiği gibi en iyiler arasında olmalıdır .

Sony'deki kötü performans kötü yazılım mühendisliğinden kaynaklanıyor. Hareket enterpolasyonu gibi bazı TV özellikleri, en az bir karenin tamponlanmasını gerektirir ve daha fazlasından yararlanabilir. Yüzen menüler, dönüşümleri biçimlendirme, içerik koruma vb. Gibi diğer özellikler bir akış biçiminde uygulanabilir, ancak kolay çıkış, bazı sistemlerde yarım düzine kadar kareye kadar her alt sistem arasında arabellek oluşturmaktır. .

Bu çok talihsiz bir durum, ancak hepsi düzeltilebilir ve umarım daha fazla gecikme konusunda teşhir üreticilerine daha fazla dayanmak istiyorum.


215
Bu yanıtı konu dışı yorumlar için kilitlemek zorunda kalmak istemem. John bu cevabı verdiğin için hepimiz heyecanlandık, ama minnettarlıklarını, inançlarını veya heyecanlarını ifade eden 25 yoruma ihtiyacımız yok. Teşekkür ederim.
nhinkle

28
USB tetikleyiciniz muhtemelen en düşük 8ms'lik bir gecikmeye (donanım sorunu) neden olan Düşük hızlı bir USB aygıtı (125usec'te veri yolu çerçeveleri) olarak çalışıyordur. Belki yerine PS2 klavyesini deneyin?
Boris

4
@Marcus Lindblom avlamak için okudun mu demek istiyorsun? Bu durumda, onun numarasına nasıl ulaştığı kadar sayı kadar önemli olduğunu düşünüyorum - tweet ile ilgili şüphecilik başka bir numaraya atıfta bulunularak ele alınmayacak. Ayrıca bağlam yardımcı olur - en iyi alt yazılımıyla bu özel monitör tarafından doğrudan rahatsız edildi.
Jeremy,

13
LCD üreticileri iddia ettikleri zaman, 5ms'lik bir yanıt süresi olduğunu söyler gibi geliyor, ki bu ham panelin değişmesi için zaman alıyor olabilir, ancak monitör, sinyalleri gerçekten yönlendirmeden önce arabelleğe alma ve işleme biraz daha zaman kazandırıyor LCD. Bu, üreticilerin yanlış / yanıltıcı özellikler yayınladığı anlamına gelmiyor mu?
psusi


68

Bazı monitörler önemli bir giriş gecikmesine sahip olabilir.

Bir berbat monitör ve video kartı ile karşılaştırıldığında müthiş bir internet bağlantısı için muhasebe mümkün

Kaynaklar:

Konsol Oyunu: Gecikme Faktörü • Sayfa 2

Bu yüzden, 30FPS'de, sekiz kare / 133ms'lik temel performans elde ediyoruz, ancak oyunun 24FPS'ye düştüğü ikinci klipte, tetiği çeken ve Niko'nun av tüfeği ateşleme animasyonuna başlamasının arasında net bir 12 kare / 200ms gecikme var. Bu 200ms artı ekranınızdaki ek gecikmedir. Ahh.

Bir Ekran 5-10ms daha ekleyebilir

Böylece, bir konsol 210ms'ye kadar gecikmeye sahip olabilir

Ve David'in yorumuna göre, en iyi durum paket göndermek için yaklaşık 70ms olmalıdır.


1
-1 John Carmack'in berbat bir monitör veya ekran kartı kullandığını sanmıyorum. Lütfen talebinize güvenilir kaynaklardan bakın.
Baarn

14
Üzgünüm ama bunu hala soruya cevap olarak görmüyorum. Alıntı, “tetiği çekerek” anlatıyor ve bu, giriş işleme, sahne oluşturma vb. Gibi, sadece ekrana bir piksel göndermekten çok daha fazla iş anlamına geliyor. Ayrıca, insan reaksiyon hızı, modern donanım performansına kıyasla nispeten kötüdür. Adamın tetiği çektiğini ve gerçekten de çektiğini düşündüğü arasındaki zaman , tıkanıklık olabilir.
Konrad Rudolph

2
Bağlantılı makale bu analizin yazarının, düğmeye basıldığında size tam olarak gösterebilecek özel bir cihaz satın aldığını gösteriyor, bu yüzden sadece sayıları kanatladıklarını sanmıyorum.
Melikoth

11
@KonradRudolph: Algı oldukça tuhaf bir şey. Bir süre önce, doğrudan omurilikten gelen darbeleri okuyan deneysel bir kontrolör hakkında bir makale okudum. İnsanlar bilgisayarın tıklanmadan önce hareket ettiğini hissedeceklerdi, tıklamak için kendi sinir komutları olsa bile.
Zan Lynx

11
@Zan Lynx: Bu bilinen bir etkidir. "Benjamin Libet'in Yarım Saniye Gecikmesi" için Google. İnsan bilinci önemli bir işlem süresi gerektirir. Şu an gerçekleşen her şey aslında geçmişte oldu. Tüm duyularınız, yarım saniye öncesine kadar bir etkinliğin "tümleşik çoklu ortam deneyimi" veriyor. Ayrıca, olaylar beyin tarafından "zaman damgalı" gibi görünmektedir. Doğrudan bir beyin stimülasyonu, deneğin hisleri eş zamanlı olarak rapor edebilmesi için dokunsal bir stimülasyona göre geciktirilmelidir!
Kaz,

35

Monitörlerde giriş gecikmesi göstermek, bir crt'in yanına bir lcd koymak ve ekranı dolduran bir animasyonu göstermek ve kaydetmek çok kolaydır. Biri ikinci veya daha fazla geride olabilir. Bu, LCD üreticilerinin, oyuncular vb. Daha fazla fark ettiği için sıkılaştırdığı bir şey.

Örneğin. Youtube Video: Giriş Lag Testi Vizio VL420M

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.