RSS

Firefox wreszcie pozbędzie się swojej największej wady

Liczba odsłon: 13

Przeglądarka Mozilla Firefox – choć chwalona za szybkość wyświetlania stron, zgodność z normami i funkcjonalność – często była krytykowana za olbrzymie wykorzystanie pamięci. Nie jest niczym niezwykłym, by proces tej przeglądarki zajmował w sumie kilkaset megabajtów pamięci operacyjnej i pliku wymiany.

Część odpowiedzialności ponoszą mechanizmy buforowania informacji. Każdy obraz wyświetlany na ekranie jest buforowany w formie oryginalnej oraz zdekompresowanej, przeznaczonej do szybkiego wyświetlenia. Każda strona WWW jest przechowywana w formie zinterpretowanej, by w razie cofnięcia się do niej nie trzeba było czekać kilku sekund na powtórne przeglądnięcie kodu HTML. Jednak nie do pominięcia jest też kwestia fragmentacji sterty.

Firefox w czasie pracy alokuje setki tysięcy – jeżeli nie setki milionów – małych i dużych bloków pamięci. Te duże nie stanowią poważnego problemu: po zwolnieniu zostawiają zazwyczaj wystarczająco dużo miejsca, by zmieścić w nich coś innego. Gorzej jest z małymi obszarami pamięci, które często pozostawiają po sobie wolny obszar zbyt mały, by był do czegokolwiek użyteczny. A ponieważ nie można w pełni zwolnić kilkuset bajtów pamięci (najmniejszym obszarem, który można „oddać” systemowi operacyjnemu jest strona), kilkaset bajtów pozostaje niewykorzystane aż do momentu zakończenia pracy procesu (lub – co mało prawdopodobne, choć nie niemożliwe – zaalokowania kolejnego bloku o rozmiarze nie większym niż rozmiar wolnego „bloczku” pamięci).

Najwyraźniej jednak ta wada przeglądarki wreszcie zostanie co najmniej ograniczona. Od dwóch dni nowe kompilacje przeglądarki korzystają z nowego alokatora pamięci, zapożyczonego z systemu operacyjnego FreeBSD. Na razie zmiana dotyczy tylko wersji programu dla systemu Linux, jednak docelowo Firefox 3.0 ma wykorzystywać nowy moduł alokacji pamięci na wszystkich platformach, na których działa.

Jeszcze szybszy i – nareszcie – oszczędniejszy Firefox jest już na horyzoncie.