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...