ChangeBlog  •  Archiwum  •  Kategorie  •  Artykuły  •  Galeria  •  Czytelnicy  •  Rupieciarnia
RSS wpisów  |  RSS komentarzy
Opera. Najszybsze surfowanie i zżeranie pamięci

Jednak Opera nie jest taka "cacy". Dzisiaj już trzy razy udało mi się ją wprowadzić w "martwą pętlę" i skłonić do zaalokowania ~300MB ramu, aż zużyły się zasoby i system ją zabił. Co ciekawe, zfiksowała na zupełnie normalnych stronach. Mam niejasne podejrzenia że to wina jej mechanizmu obsługi fontów. Ja mam dużo fontów TrueType udostępnianych przez Xft2 a Opera najwyraźniej wcale nie była testowana w środowiskach zawierających więcej niż, powiedzmy, 20 fontów. Zapewne w sytuacjach w których nie może bezpośrednio dopasować żadnego fontu zaczyna skanować całą dostępną listę i robi to wyjątkowo żałośnie, bo najwyraźniej albo ma włączony nieskończony cache fontów, albo gdzieś jej pamięć wycieka. Łatwo jest mi dowieść, że ta najnowsza linuksowa Opera jest popsuta:
Oto zużycie pamięci zaraz po uruchomieniu i załadowaniu trzech zakładek:

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
grzegorz 20659 12.9 11.4 41824 25712 ?       S    20:21   0:04 ./bin/opera

A oto zużycie pamięci po dodatkowym wejściu w opcję "Fonts" i otworzenie dialogu "Change" (nic więcej nie zrobiłem!):
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
grzegorz 20659  9.8 51.3 131240 115680 ?     S    20:21   0:07 ./bin/opera

Łał. Samo zaglądnięcie do spisu fontów spowodowało skok o prawie 90MB(!). I pamięć ta nie zostaje potem już nigdy zwolniona, trzeba zrestartować operę by ją odzyskać. Nie ma co, jak na wersję "final" to śliczny błąd. Teraz wystarczy sobie wyobrazić, że Opera robi coś podobnego przy renderowaniu stron, np. szukając fontu najbardziej pasującego do tego zadeklarowanego przez stronę... I do akcji wkracza kernelowy OOM Killer.
Firefox mi nigdy nie zrobił czegoś takiego...

Pozostaw dopisek: