Ceny RAM idą w górę. Niestety aplikacje na Windows 11 też chcą go coraz więcej

3 dni temu

Ceny pamięci RAM szybują w górę, a to dopiero początek kryzysu, jaki rozlewa się także na dyski SSD M.2 i karty graficzne. W średnioterminowej perspektywie nie ma co liczyć na obniżki, a jest to wiadomość tym gorsza, iż popularne aplikacje na Windows 11 zużywają coraz więcej RAM-u.

Nie tylko Chrome „pożera” pamięć RAM. Aplikacje na Windows 11 chcą jej coraz więcej

Nierzadko mocno wygórowane zapotrzebowanie przeglądarki internetowej Google Chrome na pamięć RAM stało się internetowym memem. Niestety, podobną drogą podążają również inne często używane programy na Windows 11, które wykazują rosnący apetyt na RAM. Chrome? Przy kilku kartach 2 GB RAM, przy kilkunastu bez problemu 4-6 GB. Discord? Około 1 GB, ale w porywach do 3 GB RAM-u. choćby Microsoft Teams pomimo ostatniej kuracji odchudzającej „wciąga” bez problemu gigabajt pamięci RAM. A gdzie system? A gdzie inne aplikacje? gwałtownie może okazać się, iż 16 GB RAM w komputerze to nowy standard. Dlaczego tak jest?

Aplikacje w Windows 11 zużywają tak wiele pamięci RAM przez to, jak zostały napisane. Zauważcie, iż wiele z nich korzysta tak naprawdę z przeglądarkowych silników. Przykładów nie trzeba szukać daleko. Przytoczony wyżej Discord wykorzystuje silnik Electron, a Teams i WhatsApp korzystają z popularnego WebView 2. Zastanawialiście się kiedyś, dlaczego pojedyncza aplikacja potrafi uruchomić tak wiele procesów? Cóż, choćby niewielki jej element może potrzebować osobnego procesu – chociażby menu ustawień lub kolejne otwarte okienko czatu.

Discord wygląda niepozornie, ale potrafi dać niezłego łupnia słabszym komputerom. | Grafika: Instalki.pl (zrzut ekranu)

Pomyślcie tylko, iż każda aplikacja bazująca na Electron ma własny silnik JavaScript, renderer GPU, sandboksowane, izolowane procesy podrzędne i stos sieciowy. Działa to trochę tak, jak nowa instancja przeglądarki internetowej. Ze względu na spadające ceny pamięci i coraz nowocześniejsze komputery programiści przestali przykładać się do optymalizacji. Spójrzcie tylko na branżę gier komputerowych, gdzie lekarstwem na kiepską optymalizację jest NVIDIA DLSS. Problem polega na tym, iż teraz, gdy ceny pamięci RAM wystrzeliły w kosmos, a wraz z nimi ceny kart graficznych, nie każdego będzie stać na ulepszenie swojej maszyny.

Optymalizacja to jedno, wycieki pamięci to odrębny problem

Wszechobecne wycieki pamięci nakładają się na kwestie związane z tym, jak projektowane są aplikacje. W apkach opartych na Electronie i podobnych technologiach wycieki pamięci pojawiają się najczęściej wtedy, gdy JavaScript nie zwalnia nieużywanych już danych. Dzieje się tak np. wtedy, gdy w tle gromadzą się event listenery albo framework trzyma w pamięci podręcznej obiekty, które dawno straciły sens istnienia. Problem potrafi narastać godzinami, aż w końcu aplikacja zaczyna zużywać wiele gigabajtów RAM. Co gorsza, narzędzia do diagnozowania takich błędów w JavaScript są po prostu słabsze niż te dla aplikacji natywnych.

Największym ograniczeniem jest jednak sama architektura. Programiści nie mają dostępu do tego, co wykorzystywany nierzadko do uruchamiania aplikacji silnik Chromium robi „pod spodem”. Nie da się wymusić, by renderer szybciej zwalniał pamięć, ani zmienić jego wieloprocesowego modelu. Firmy mogą więc tylko wypuszczać poprawki łatające pojedyncze problemy, bo fundamenty frameworka są zbyt złożone, by można je było realnie zoptymalizować pod kątem zużycia pamięci RAM.

Chrome przez cały czas potrafi zużywać spore ilości pamięci RAM, ale inne aplikacje na Windows 11 nie pozostają daleko w tyle. | Grafika: Instalki.pl (zrzut ekranu)

Dlaczego zatem nie porzucić aplikacji webowych i nie zastąpić ich natywnymi?

Zauważyliście zapewne, iż od lat powstaje coraz więcej aplikacji w Windows 11 bazujących na silnikach przeglądarek. Programiści odchodzą od tych natywnych. Dlaczego? Bo tak jest taniej. Tak po prostu. Jedna aplikacja napisana w JavaScript może działać na Windowsie, macOS i Linuksie praktycznie bez zmian w kodzie. Do tego znacznie łatwiej (i taniej) jest znaleźć programistów JavaScript niż specjalistów od C++. Aplikacje UWP są porzucane i zastępowane PWA.

Dacie wiarę, iż nowe funkcje panelu powiadomień w Windows 11 porzucają WinUI na rzecz WebView 2, co sprawi, iż jeszcze mocniej obciążą komputery? Zupełnie inaczej sprawa wygląda na macOS, gdzie tworzenie aplikacji natywnych jest trudniejsze. Tam użytkownicy są na tyle wymagający, iż nie pozwalają deweloperom chodzić na skróty. Przeciętna osoba korzystająca z Windowsa niespecjalnie przejmuje się tym, jak działa aplikacja, dopóki po prostu działa.

Być może gdy ceny pamięci RAM jeszcze bardziej wzrosną, zwiększy się też świadomość konsumentów. Wtedy zamiast po prostu dorzucać kolejne kości pamięci RAM do komputera zaczną wywierać presję na deweloperach. Tak powinno być zawsze.

Crucial żegna konsumentów. Dyski SSD i pamięci RAM znikną z rynku

Źródło: Instalki.pl, windowslatest

pamięci RAMRAMwindowswindows 11
Idź do oryginalnego materiału