Wiele procesów Firefoksa – test bardziej niż amatorski
03.08.2017 19:15
Słowem wstępu
Ostatnio stałem się, przynajmniej przez chwilę, szczęśliwym użytkownikiem blaszaka. Nic specjalnego, typowy komputer biurowo-domowy. Trafił do mnie na przechowanie, z uwagi na remont mieszkania u rodziny. Postanowiłem wykorzystać go do testów Firefoksa 54. Przede wszystkim dlatego, że kolejna wersja ma być „przełomowa” pod względem „zużycia” pamięci. Interesował mnie wpływ wieloprocesorowości na wydajność liska. Jak przystało na zwykłego użytkownika, przeprowadzone testy są amatorskie i bazują na moich odczuciach, i to bardzo subiektywnych.Jak wyglądała procedura testowa
Testowany obiekt: Firefox 54 Platforma systemowa: Windows 10 Home (wiadomo, że aktualny) Platforma sprzętowa: komputer klasy PC, 8 GB ramu, HDD 500 GB 7200, Nvidia GT 730
Zaplanowałem sobie procedurę, która przewidywała po 2 identyczne scenariusze dla ustawienia z jednym procesem i dla ustawienia z włączoną wieloprocesorowością (zalecane przez Mozillę 4 procesy).
Scenariusz nr 1
Zwykły użytkownik korzystający z kilku kart, przy czym jedna karta po włączeniu jest nieużywana przez ponad godzinę, a po godzinie do niej się wraca, następnie zamyka się przeglądarkę z kilkoma kartami, ponownie się ją uruchamia z przywróceniem kart i się je wszystkie odświeża.
Scenariusz nr 2
Zwykły użytkownik mający chory zwyczaj pracy z pierdylionem kart (w moim przypadku z 30). Część kart (5) nie jest używana przez godzinę, pozostałe przeglądane są na bieżąco, ładowane są kolejne strony, następnie przechodzi się do kart nieużywanych, a na końcu zamyka się przeglądarkę, uruchamia ponownie z przywróceniem kart i wybiera odśwież wszystkie karty.
W szczegóły testów nie będę się wdawał, bo nie były zbyt pasjonujące, a do tego tandetnie amatorskie, ale od razu przejdę do wstępnych wniosków.
Jeden proces vs. cztery procesy
Scenariusz 1 – mało kart
Nie zauważyłem różnicy w użytkowaniu. Może nieco szybciej, ale to pojęcie względne, uruchamiała się karta długo nieużywana. Dla zwykłego użytkownika, z punktu widzenia działania przeglądarki, nie ma znaczenia, czy działa ona w jednym czy w kilku procesach. Nie zanotowałem istotnych różnic przy zamykaniu i ponownym uruchamianiu.
Scenariusz 2 – dużo kart
Tu skupię się na różnicach. Nieużywane karty szybciej się wyświetlały. Po ponownym uruchomieniu karty zdecydowanie szybciej się odświeżały. Tu nie ma mowy o efekcie placebo. Karty w wielu procesach ładowały się od 1,5 do 4 razy szybciej. Czyli jeżeli ktoś pracuje z dużą liczbą kart, a do tego wszystkie odświeża po uruchomieniu liska, to zdecydowanie szybciej powinny mu się załadować.
To w zasadzie jedyna sytuacja, pomijam kwestię „zwieszenia się karty”, gdzie widoczna była różnica między pracą w jednym procesie i w wielu.
Apetyt na pamięć
Odnośnie zużycia pamięci. Tak jak deklaruje Mozilla lisek w wersji wieloprocesowej zużywa ok. 20% więcej niż w wersji jednoprocesowej. Jak ktoś używa dużej liczby kart, to raczej nie zauważy różnicy, ale jest jedno ale...
Jak zwykle jest haczyk
Po testach na PC postanowiłem zrobić coś podobnego na moim laptopie – Fujitsu Lifebook A530 z Ubuntu 16.04 LTS na pokładzie. Maszyna bardzo leciwa, ale z serii „nie gniocja nie łamiocja”. Wymusiłem wieloprocesowość w przeglądarce i zabrałem się do dzieła. I tu pierwsze rozczarowanie. Lisek w wielu procesach nie zużywa ramu – on go żre jak oszalały! Kilka kart w prostymi stronami i 2,5GB dla samego Firefoksa! W jednym procesie ledwie dobijał z tymi kartami do 600‑700 MB. Pierwsza myśl, ocierająca się o zdradę: może to winna Ubuntu? Bo, co do reszty wyników, to były podobne jak na Windowsie. Potem przyszła refleksja i opamiętanie. Ale i tak, za chwilę zwątpienia ukarałem się - dodam dla usprawiedliwienia, że musiałem się do tego zmuszać - zimnym piwkiem.
Dlaczego jednak na laptopie z Ubuntu lisek żre tyle ramu. Stawiam na kartę grafiki. Na laptrupie mam starą integrę Intela, bodajże HD 4000, a to oznacza pamięć współdzieloną... Wnioski nasuwają się same. Jak masz tylko integrę ze współdzieloną pamięcią nie korzystaj z liska w wersji wieloprocesowej, bo wchłonie cały ram jak gąbka wódkę i nic nie będziesz z tego miał.
Po testach, na Ubuntu wróciłem do wersji „jednoprocesowej”. Ciekawe, że Chrome zdecydowanie lepiej sobie radzi z obsługą pamięci niż lisek (piszę o wieluprocesach). Te same karty, które w Firefoksie zużyły 2,5 GB ramu, w Chrome miały coś ok. 700‑850 MB, czyli niewiele więcej niż w przypadku liska działającego w jednym procesie.
Słowo na zakończenie
Mozilli chyba nie do końca nie wyszło wcielenie w życie idei dostępności oprogramowania. Jeżeli wymuszą w lisku wieloprocesowość w obecnej formie, to na słabszym sprzęcie nie będzie sensu go używać. Chyba, że poprawią obsługę pamięci – mam nadzieję, że stanie się to wyczekiwanej wersji numer 55.