[#31]
Re: Wayfarer - koniec pewnego etapu
@KM_Ender,
post #26
Skoro już odeszliśmy nieco od tematu, to 1 rdzeń 64 bity wysoko taktowany, też nic by nie zmienił?
Tutaj to musiałby się ktoś mądrzejszy wypowiedzieć. Ale ja rozumiem to tak, że podczas „przegryzania” takiej dzisiejszej strony www, dzisiejsze technologie robią wiele rzeczy w tym samym czasie i to wszystko może dziać się równocześnie. Momenty „czekania” są gdzieś tam w punktach synchronizacji wyników działania wątków czy podczas już samego wrzucania tego na ekran. Gdy mamy jeden rdzeń to równocześnie może być wykonywana jedna operacja, bo wszystko ląduje w tej samej kolejce. No i coś co mogłoby się robić w tle innej operacji czeka aż zakończy się coś innego. Czeka, a użytkowik też czeka i patrzy na pustą stronę.
Z tego co tutaj kiedyś przeczytałem w komentarzach wynika, że ogromnym problemem jest tzw. garbage collector, czyli coś co zwalnia pamięć po nieużywanych już obiektach (chyba w JavaScript). W dzisiejszym świecie webowym to się dzieje tak przerażająco często, że zjada ogormną ilość czasu procesora i właśnie zajmuje nasz biedy jedyny rdzeń, który powinien nam wyrenderować stronę, a nie tracić czas na wynoszenie śmieci. Normalnie pewnie działony się to na osobnym rdzeniu w tle i nie odczuwalibyśmy tego, bo pozostałe rdzenie wyrenderowałyby nam stronę takiego Facebooka i w tym momencie już byśmy dawno buszowali to nim.
W tym wszystkim najsmutniejsze jest to, że to czym przez dziesięciolecia tak bardzo się szczyciliśmy dzisiaj stało się ścianą, której nie możemy przebić. Chodzi mi o multitasking. Zawsze się mówiło jaka to Amiga jest wielozadaniowa, a dzisiaj mamy problem, bo nie mamy prawdziwego multitaskingu.

Oczywiście to trochę sarkazm i uproszczenie, bo AmigaOS (i pochodne) są wielozadaniowe, cały system od lat 80 potrafi działać w oparciu o asynchroniczne zapytania i dawny Microsoft czy Apple nawet nie mogły pomarzyć o takiej architekturze. Ale co z tego, że to jest zgrabnie wielozadaniowo zaprojektowane skoro i tak wszystko ląduje na tym samym rdzeniu procesora, siedzi w jednej kolejce i zadania czekają na siebie wykonując się jedno po drugim, a nie równocześnie. Trudno o to mieć pretensje o twórców AmigaOS, bo wtedy nikt nie myślał o wieloprocesorowości. I tak wykazali się znacznie większą dalekowzrocznością niż ówczesny Microsoft czy Apple. No ale rywale nie spali, Microsoft w końcu pozbył się DOS/Win95/98/ME, Apple przeszło na bebechy Unixa, budując na nim MacOSX (później zwany OSX, a dzisiaj macOS). A my pod tym względem staliśmy w miejscu. Tylko AROS zrobił na tym polu poważny krok. Ale jakoś nie widzę żeby to w jakiś sposób zaprocentowało. Nie wiem czy tak poważne modyfikacje są możliwe w AmigaOS4 czy MorphOS bez utraty kompatybilności czy poważnych błędów. Nie wiem też w jaki sposób nasz istniejący amigowy soft na czymś takim by zadziałał. Czy to co do tej pory było stworzone działałoby na jednym wątku, a tylko nowe programy, specjalnie pisane potrafiłyby wykorzystywać wiele rdzeni? Czy w ogóle jest możliwe pogodzenie tych dwóch światów? Pojęcia nie mam. Wiem tylko, że najgorszymi błędami do naprawy są te, spowodowane bałaganem w wielowątkowości. Szukanie i poprawianie tego to jest najgorsza kara jaką może dostać programista.

Na każdym systemie.