Stary Apple IIe z 1983 roku okazał się ponad sześciokrotnie szybszy od nowoczesnego desktopowego PC z procesorem Core i7-7700K

Reklama

Mam to dręczące uczucie, że komputery z których dzisiaj korzystam są powolniejsze niż te, z których korzystałem jako dziecko – tak zaczyna swój ostatni blogowy wpis nowojorski inżynier Dan Luu, ekspert od naprawdę niskopoziomowego programowania. Czysty absurd, biorąc pod uwagę to, że mówimy o sprzęcie sprzed ponad 30 lat, miliony razy przecież powolniejszym. A jednak przeprowadzone testy empiryczne potwierdziły to dręczące uczucie. Stary Apple IIe z 1983 roku okazał się w pewnej kwestii ponad sześciokrotnie szybszy od nowoczesnego desktopowego PC z procesorem Core i7-7700K. Co poszło nie tak?

Sam pomysł, by porównywać muzealny sprzęt komputerowy z maszynami, które pod względem wydajności biją na głowę to, co wyobrażali sobie w latach 80 pisarze science fiction może wydawać się niedorzeczny. Apple IIe miało procesor taktowany z częstotliwością 1 MHz, podczas gdy procesory współczesnych pecetów to częstotliwości rzędu 4 GHz. A jednak prosty test, mierzący opóźnienie między naciśnięciem klawisza a wyświetleniem znaku na ekranie potwierdził przeczucia nowojorskiego inżyniera. Stare komputery w tej kategorii były niezwykle szybkie, reagowały na działania użytkownika w mgnieniu oka.

Poniższa tabela przedstawia zmierzone za pomocą kamery poklatkowej opóźnienia na linii klawiatura-ekran w komputerach wyprodukowanych między 1977 a 2017 rokiem. Tam gdzie zastosowano różne systemy operacyjne na tym samym sprzęcie, zaznaczono to wytłuszczonym drukiem. Co sprawiło, że stary sprzęt Apple znalazł się tak wysoko?

imageimage

Odpowiedź wcale nie jest trudna. To prostota. Stary komputer Apple’a po prostu czeka na wprowadzenie znaku. Jego klawiatura jest odpytywana 556 razy na sekundę nie przez jakiś skomplikowany mikrokontroler, lecz prosty czip, którego łączne opóźnienia nie przekraczają 8 ms. Po drugiej stronie stary kineskopowy wyświetlacz z odświeżaniem 60 Hz dorzuca do tego kolejne 8 ms. Na cały potok renderowania grafiki przez kontroler wideo (24×40 znaków poprzez zespolony sygnał wizji) pozostaje 14 ms. Cały zarządzający tym kod nie musi dbać o bufory, przełączanie między procesami, konteksty interfejsu – najwyraźniej jego zawierającemu 3500 tranzystorów mikroprocesorowi ten czas wystarczy na obsłużenie interakcji z użytkownikiem.

Po drugiej stronie mamy współczesnego peceta o całkiem dobrych parametrach. Jego klawiatura jest odpytywana w najlepszym razie 167 razy na sekundę z wykorzystaniem mikrokontrolera w klawiaturze mającego około 80 tysięcy tranzystorów. Już ot samo ma generować opóźnienie rzędu 18 ms. Po drugiej stronie jest wyświetlacz LCD, który choć nominalnie może oferować szybkość reakcji na poziomie 1 ms, w rzeczywistości przy odświeżaniu ekranu 144 Hz na wyświetlenie znaku potrzebuje około 14 ms. A między klawiaturą a ekranem mamy system ogromnej złożoności, obsługujący setki jednocześnie uruchomionych procesów i przeróżne interfejsy sprzętowe. Nawet tam, gdzie próbuje się zwiększyć wydajność takiego nowoczesnego systemu, robi się to kosztem dalszego wzrostu jego złożoności. W efekcie widzimy sytuację, w której na tym samym sprzęcie skomplikowany Windows generuje opóźnienia o 30 ms wyższe niż architektonicznie prostszy Linux.

Jak zauważa Dan Luu, bardzo trudno jest się tej złożoności pozbyć. Widać to w porównaniu wspomnianych klawiatur: potężny nowoczesny mikrokontroler okazuje się być powolniejszy niż prosty czip logiki klawiatury. Czemu więc współcześni producenci czipów nie korzystają z takich czipów jak kiedyś robiło to Apple (czy inni producenci 8- i 16-bitowych komputerów)? Odpowiedź jest prosta: stosując mikrokontroler można łatwo modyfikować funkcje klawiatury i przerzucić zagadnienie modyfikacji ze sprzętu na oprogramowanie – a to obniża koszt produkcji. Programista jest znacznie droższy niż sprzęt.

Dlatego w większości wypadków niemożliwe będzie dla współczesnych systemów pokonanie Apple IIe – jeśli opóźnienia samej ich klawiatury będą większe, niż całego starego komputera. Oczywiście dzisiaj już możliwe jest dobranie takiej konfiguracji sprzętu i oprogramowania, że powstanie maszyna o opóźnieniach interakcji z interfejsem bliskich tym starym maszynom. Na liście znajdziemy peceta z 2014 roku z procesorem Haswell-E i wyświetlaczem 165 Hz, w którym latencja jest mniejsza niż w stareńkim Commodore PET.

Zdaniem nowojorskiego inżyniera, wychodzimy wreszcie z mrocznych wieków powolnych interfejsów niskiej rozdzielczości, a to otwiera drogę do zupełnie nowych klas aplikacji i podniesienia doświadczenia użytkownika do poziomów, jakie dziś oferują tylko profesjonalne tablety Apple (nowy iPad Pro z piórkiem i 10-calowym wyświetlaczem HiDPI to również opóźnienie rzędu 30 ms). Ma to duże znaczenie, ponieważ nie jest wcale prawdą, jakoby ludzie nie odróżniali od siebie opóźnień poniżej progu 100 milisekund – w prostych zadaniach przeciętny użytkownik jest w stanie odróżnić opóźnienia różniące się od siebie o nawet 2 milisekundy.

Autor: 
---
Źródło: 

dobreprogramy

Dodaj komentarz

CAPTCHA
Przepisz kod z obrazka.

Reklama